From 07b78716af6a9d7c9fd1e94d9baf94a52c873947 Mon Sep 17 00:00:00 2001
From: Andrew Haley
Date: Fri, 30 Sep 2016 16:24:48 +0000
Subject: Makefile.def: Remove libjava.
2016-09-30 Andrew Haley
* Makefile.def: Remove libjava.
* Makefile.tpl: Likewise.
* Makefile.in: Regenerate.
* configure.ac: Likewise.
* configure: Likewise.
* gcc/java: Remove.
* libjava: Likewise.
From-SVN: r240662
---
libjava/classpath/tools/.cvsignore | 19 -
libjava/classpath/tools/Makefile.am | 401 --
libjava/classpath/tools/Makefile.in | 1429 -------
libjava/classpath/tools/README | 58 -
libjava/classpath/tools/appletviewer.in | 46 -
.../asm/org/objectweb/asm/AnnotationVisitor.class | Bin 481 -> 0 bytes
.../asm/org/objectweb/asm/AnnotationWriter.class | Bin 5344 -> 0 bytes
.../tools/asm/org/objectweb/asm/Attribute.class | Bin 2624 -> 0 bytes
.../tools/asm/org/objectweb/asm/ByteVector.class | Bin 3259 -> 0 bytes
.../tools/asm/org/objectweb/asm/ClassAdapter.class | Bin 2432 -> 0 bytes
.../tools/asm/org/objectweb/asm/ClassReader.class | Bin 22143 -> 0 bytes
.../tools/asm/org/objectweb/asm/ClassVisitor.class | Bin 894 -> 0 bytes
.../tools/asm/org/objectweb/asm/ClassWriter.class | Bin 14071 -> 0 bytes
.../tools/asm/org/objectweb/asm/Edge.class | Bin 360 -> 0 bytes
.../tools/asm/org/objectweb/asm/FieldVisitor.class | Bin 295 -> 0 bytes
.../tools/asm/org/objectweb/asm/FieldWriter.class | Bin 3658 -> 0 bytes
.../tools/asm/org/objectweb/asm/Handler.class | Bin 428 -> 0 bytes
.../tools/asm/org/objectweb/asm/Item.class | Bin 2190 -> 0 bytes
.../tools/asm/org/objectweb/asm/Label.class | Bin 2561 -> 0 bytes
.../asm/org/objectweb/asm/MethodAdapter.class | Bin 4363 -> 0 bytes
.../asm/org/objectweb/asm/MethodVisitor.class | Bin 1464 -> 0 bytes
.../tools/asm/org/objectweb/asm/MethodWriter.class | Bin 20587 -> 0 bytes
.../tools/asm/org/objectweb/asm/Opcodes.class | Bin 5782 -> 0 bytes
.../tools/asm/org/objectweb/asm/Type.class | Bin 7900 -> 0 bytes
.../objectweb/asm/attrs/StackMapAttribute.class | Bin 6499 -> 0 bytes
.../org/objectweb/asm/attrs/StackMapFrame.class | Bin 1113 -> 0 bytes
.../asm/attrs/StackMapTableAttribute.class | Bin 9987 -> 0 bytes
.../asm/org/objectweb/asm/attrs/StackMapType.class | Bin 2422 -> 0 bytes
.../org/objectweb/asm/commons/AdviceAdapter.class | Bin 7758 -> 0 bytes
.../org/objectweb/asm/commons/EmptyVisitor.class | Bin 5591 -> 0 bytes
.../objectweb/asm/commons/GeneratorAdapter.class | Bin 18394 -> 0 bytes
.../asm/commons/LocalVariablesSorter.class | Bin 2561 -> 0 bytes
.../asm/org/objectweb/asm/commons/Method.class | Bin 3964 -> 0 bytes
.../asm/commons/SerialVersionUIDAdder$Item.class | Bin 946 -> 0 bytes
.../asm/commons/SerialVersionUIDAdder.class | Bin 5030 -> 0 bytes
.../objectweb/asm/commons/StaticInitMerger.class | Bin 2143 -> 0 bytes
.../asm/commons/TableSwitchGenerator.class | Bin 234 -> 0 bytes
.../optimizer/AnnotationConstantsCollector.class | Bin 3362 -> 0 bytes
.../asm/optimizer/ClassConstantsCollector.class | Bin 4492 -> 0 bytes
.../objectweb/asm/optimizer/ClassOptimizer.class | Bin 4264 -> 0 bytes
.../asm/org/objectweb/asm/optimizer/Constant.class | Bin 3227 -> 0 bytes
.../org/objectweb/asm/optimizer/ConstantPool.class | Bin 4508 -> 0 bytes
.../asm/optimizer/FieldConstantsCollector.class | Bin 1555 -> 0 bytes
.../org/objectweb/asm/optimizer/JarOptimizer.class | Bin 2470 -> 0 bytes
.../asm/optimizer/MethodConstantsCollector.class | Bin 4251 -> 0 bytes
.../objectweb/asm/optimizer/MethodOptimizer.class | Bin 2637 -> 0 bytes
.../org/objectweb/asm/optimizer/NameMapping.class | Bin 2504 -> 0 bytes
.../optimizer/Shrinker$ConstantComparator.class | Bin 2004 -> 0 bytes
.../asm/org/objectweb/asm/optimizer/Shrinker.class | Bin 4058 -> 0 bytes
.../objectweb/asm/signature/SignatureReader.class | Bin 2803 -> 0 bytes
.../objectweb/asm/signature/SignatureVisitor.class | Bin 808 -> 0 bytes
.../objectweb/asm/signature/SignatureWriter.class | Bin 2981 -> 0 bytes
.../org/objectweb/asm/tree/AbstractInsnNode.class | Bin 994 -> 0 bytes
.../org/objectweb/asm/tree/AnnotationNode.class | Bin 2730 -> 0 bytes
.../asm/org/objectweb/asm/tree/ClassNode.class | Bin 4545 -> 0 bytes
.../asm/org/objectweb/asm/tree/FieldInsnNode.class | Bin 996 -> 0 bytes
.../asm/org/objectweb/asm/tree/FieldNode.class | Bin 1958 -> 0 bytes
.../asm/org/objectweb/asm/tree/IincInsnNode.class | Bin 749 -> 0 bytes
.../org/objectweb/asm/tree/InnerClassNode.class | Bin 836 -> 0 bytes
.../asm/org/objectweb/asm/tree/InsnNode.class | Bin 994 -> 0 bytes
.../asm/org/objectweb/asm/tree/IntInsnNode.class | Bin 819 -> 0 bytes
.../asm/org/objectweb/asm/tree/JumpInsnNode.class | Bin 874 -> 0 bytes
.../asm/org/objectweb/asm/tree/LabelNode.class | Bin 736 -> 0 bytes
.../asm/org/objectweb/asm/tree/LdcInsnNode.class | Bin 729 -> 0 bytes
.../org/objectweb/asm/tree/LineNumberNode.class | Bin 709 -> 0 bytes
.../org/objectweb/asm/tree/LocalVariableNode.class | Bin 1021 -> 0 bytes
.../objectweb/asm/tree/LookupSwitchInsnNode.class | Bin 1626 -> 0 bytes
.../asm/org/objectweb/asm/tree/MemberNode.class | Bin 1241 -> 0 bytes
.../org/objectweb/asm/tree/MethodInsnNode.class | Bin 1000 -> 0 bytes
.../asm/org/objectweb/asm/tree/MethodNode$1.class | Bin 803 -> 0 bytes
.../asm/org/objectweb/asm/tree/MethodNode.class | Bin 8654 -> 0 bytes
.../asm/tree/MultiANewArrayInsnNode.class | Bin 828 -> 0 bytes
.../objectweb/asm/tree/TableSwitchInsnNode.class | Bin 1372 -> 0 bytes
.../org/objectweb/asm/tree/TryCatchBlockNode.class | Bin 904 -> 0 bytes
.../asm/org/objectweb/asm/tree/TypeInsnNode.class | Bin 858 -> 0 bytes
.../asm/org/objectweb/asm/tree/VarInsnNode.class | Bin 815 -> 0 bytes
.../org/objectweb/asm/tree/analysis/Analyzer.class | Bin 8867 -> 0 bytes
.../asm/tree/analysis/AnalyzerException.class | Bin 1243 -> 0 bytes
.../asm/tree/analysis/BasicInterpreter.class | Bin 5974 -> 0 bytes
.../objectweb/asm/tree/analysis/BasicValue.class | Bin 1962 -> 0 bytes
.../asm/tree/analysis/BasicVerifier.class | Bin 7836 -> 0 bytes
.../asm/tree/analysis/DataflowInterpreter.class | Bin 4302 -> 0 bytes
.../asm/tree/analysis/DataflowValue.class | Bin 1356 -> 0 bytes
.../org/objectweb/asm/tree/analysis/Frame.class | Bin 10023 -> 0 bytes
.../org/objectweb/asm/tree/analysis/IntMap.class | Bin 1230 -> 0 bytes
.../objectweb/asm/tree/analysis/Interpreter.class | Bin 1312 -> 0 bytes
.../asm/tree/analysis/SimpleVerifier.class | Bin 4833 -> 0 bytes
.../org/objectweb/asm/tree/analysis/SmallSet.class | Bin 1641 -> 0 bytes
.../objectweb/asm/tree/analysis/Subroutine.class | Bin 1836 -> 0 bytes
.../org/objectweb/asm/tree/analysis/Value.class | Bin 147 -> 0 bytes
.../asm/util/ASMifierAbstractVisitor.class | Bin 4875 -> 0 bytes
.../asm/util/ASMifierAnnotationVisitor.class | Bin 2587 -> 0 bytes
.../objectweb/asm/util/ASMifierClassVisitor.class | Bin 9817 -> 0 bytes
.../objectweb/asm/util/ASMifierFieldVisitor.class | Bin 437 -> 0 bytes
.../objectweb/asm/util/ASMifierMethodVisitor.class | Bin 7739 -> 0 bytes
.../org/objectweb/asm/util/AbstractVisitor.class | Bin 3823 -> 0 bytes
.../asm/util/CheckAnnotationAdapter.class | Bin 2766 -> 0 bytes
.../org/objectweb/asm/util/CheckClassAdapter.class | Bin 9732 -> 0 bytes
.../org/objectweb/asm/util/CheckFieldAdapter.class | Bin 1588 -> 0 bytes
.../objectweb/asm/util/CheckMethodAdapter.class | Bin 13225 -> 0 bytes
.../objectweb/asm/util/TraceAbstractVisitor.class | Bin 2593 -> 0 bytes
.../asm/util/TraceAnnotationVisitor.class | Bin 5991 -> 0 bytes
.../org/objectweb/asm/util/TraceClassVisitor.class | Bin 9174 -> 0 bytes
.../org/objectweb/asm/util/TraceFieldVisitor.class | Bin 1141 -> 0 bytes
.../objectweb/asm/util/TraceMethodVisitor.class | Bin 10058 -> 0 bytes
.../objectweb/asm/util/TraceSignatureVisitor.class | Bin 4781 -> 0 bytes
.../asm/util/attrs/ASMStackMapAttribute.class | Bin 5535 -> 0 bytes
.../asm/util/attrs/ASMStackMapTableAttribute.class | Bin 5483 -> 0 bytes
.../org/objectweb/asm/util/attrs/ASMifiable.class | Bin 210 -> 0 bytes
.../org/objectweb/asm/util/attrs/Traceable.class | Bin 189 -> 0 bytes
.../ASMContentHandler$AnnotationDefaultRule.class | Bin 1414 -> 0 bytes
...ASMContentHandler$AnnotationParameterRule.class | Bin 1864 -> 0 bytes
.../asm/xml/ASMContentHandler$AnnotationRule.class | Bin 1905 -> 0 bytes
...tentHandler$AnnotationValueAnnotationRule.class | Bin 1591 -> 0 bytes
...SMContentHandler$AnnotationValueArrayRule.class | Bin 1512 -> 0 bytes
...ASMContentHandler$AnnotationValueEnumRule.class | Bin 1373 -> 0 bytes
.../ASMContentHandler$AnnotationValueRule.class | Bin 1408 -> 0 bytes
.../asm/xml/ASMContentHandler$ClassRule.class | Bin 1854 -> 0 bytes
.../asm/xml/ASMContentHandler$ExceptionRule.class | Bin 1279 -> 0 bytes
.../asm/xml/ASMContentHandler$ExceptionsRule.class | Bin 1814 -> 0 bytes
.../asm/xml/ASMContentHandler$FieldRule.class | Bin 1866 -> 0 bytes
.../asm/xml/ASMContentHandler$InnerClassRule.class | Bin 1448 -> 0 bytes
.../asm/xml/ASMContentHandler$InterfaceRule.class | Bin 1279 -> 0 bytes
.../asm/xml/ASMContentHandler$InterfacesRule.class | Bin 1879 -> 0 bytes
.../asm/xml/ASMContentHandler$LabelRule.class | Bin 1283 -> 0 bytes
.../asm/xml/ASMContentHandler$LineNumberRule.class | Bin 1472 -> 0 bytes
.../asm/xml/ASMContentHandler$LocalVarRule.class | Bin 1724 -> 0 bytes
.../ASMContentHandler$LookupSwitchLabelRule.class | Bin 1469 -> 0 bytes
.../xml/ASMContentHandler$LookupSwitchRule.class | Bin 2483 -> 0 bytes
.../asm/xml/ASMContentHandler$MaxRule.class | Bin 1327 -> 0 bytes
.../asm/xml/ASMContentHandler$MethodRule.class | Bin 1719 -> 0 bytes
.../asm/xml/ASMContentHandler$Opcode.class | Bin 525 -> 0 bytes
.../asm/xml/ASMContentHandler$OpcodeGroup.class | Bin 594 -> 0 bytes
.../asm/xml/ASMContentHandler$OpcodesRule.class | Bin 3114 -> 0 bytes
.../asm/xml/ASMContentHandler$OuterClassRule.class | Bin 1346 -> 0 bytes
.../objectweb/asm/xml/ASMContentHandler$Rule.class | Bin 4970 -> 0 bytes
.../asm/xml/ASMContentHandler$RuleSet.class | Bin 2077 -> 0 bytes
.../asm/xml/ASMContentHandler$SourceRule.class | Bin 1269 -> 0 bytes
.../ASMContentHandler$TableSwitchLabelRule.class | Bin 1376 -> 0 bytes
.../xml/ASMContentHandler$TableSwitchRule.class | Bin 2406 -> 0 bytes
.../asm/xml/ASMContentHandler$TryCatchRule.class | Bin 1541 -> 0 bytes
.../org/objectweb/asm/xml/ASMContentHandler.class | Bin 16825 -> 0 bytes
.../xml/Processor$ASMContentHandlerFactory.class | Bin 871 -> 0 bytes
.../asm/xml/Processor$ContentHandlerFactory.class | Bin 299 -> 0 bytes
.../objectweb/asm/xml/Processor$EntryElement.class | Bin 367 -> 0 bytes
.../asm/xml/Processor$InputSlicingHandler.class | Bin 2395 -> 0 bytes
.../asm/xml/Processor$OutputSlicingHandler.class | Bin 3132 -> 0 bytes
.../asm/xml/Processor$ProtectedInputStream.class | Bin 1130 -> 0 bytes
.../objectweb/asm/xml/Processor$SAXWriter.class | Bin 4521 -> 0 bytes
.../asm/xml/Processor$SAXWriterFactory.class | Bin 867 -> 0 bytes
.../asm/xml/Processor$SingleDocElement.class | Bin 930 -> 0 bytes
.../xml/Processor$SubdocumentHandlerFactory.class | Bin 781 -> 0 bytes
.../xml/Processor$TransformerHandlerFactory.class | Bin 1756 -> 0 bytes
.../asm/xml/Processor$ZipEntryElement.class | Bin 1163 -> 0 bytes
.../asm/org/objectweb/asm/xml/Processor.class | Bin 11122 -> 0 bytes
.../asm/org/objectweb/asm/xml/SAXAdapter.class | Bin 1848 -> 0 bytes
.../objectweb/asm/xml/SAXAnnotationAdapter.class | Bin 4628 -> 0 bytes
.../org/objectweb/asm/xml/SAXClassAdapter.class | Bin 6837 -> 0 bytes
.../asm/org/objectweb/asm/xml/SAXCodeAdapter.class | Bin 7552 -> 0 bytes
.../org/objectweb/asm/xml/SAXFieldAdapter.class | Bin 1719 -> 0 bytes
.../tools/classes/com/sun/javadoc/ClassDoc.class | Bin 1087 -> 0 bytes
.../classes/com/sun/javadoc/ConstructorDoc.class | Bin 215 -> 0 bytes
.../tools/classes/com/sun/javadoc/Doc.class | Bin 849 -> 0 bytes
.../classes/com/sun/javadoc/DocErrorReporter.class | Bin 219 -> 0 bytes
.../tools/classes/com/sun/javadoc/Doclet.class | Bin 750 -> 0 bytes
.../com/sun/javadoc/ExecutableMemberDoc.class | Bin 504 -> 0 bytes
.../tools/classes/com/sun/javadoc/FieldDoc.class | Bin 405 -> 0 bytes
.../tools/classes/com/sun/javadoc/MemberDoc.class | Bin 184 -> 0 bytes
.../tools/classes/com/sun/javadoc/MethodDoc.class | Bin 290 -> 0 bytes
.../tools/classes/com/sun/javadoc/PackageDoc.class | Bin 351 -> 0 bytes
.../tools/classes/com/sun/javadoc/ParamTag.class | Bin 214 -> 0 bytes
.../tools/classes/com/sun/javadoc/Parameter.class | Bin 261 -> 0 bytes
.../com/sun/javadoc/ProgramElementDoc.class | Bin 508 -> 0 bytes
.../tools/classes/com/sun/javadoc/RootDoc.class | Bin 504 -> 0 bytes
.../tools/classes/com/sun/javadoc/SeeTag.class | Bin 413 -> 0 bytes
.../classes/com/sun/javadoc/SerialFieldTag.class | Bin 363 -> 0 bytes
.../classes/com/sun/javadoc/SourcePosition.class | Bin 239 -> 0 bytes
.../tools/classes/com/sun/javadoc/Tag.class | Bin 294 -> 0 bytes
.../tools/classes/com/sun/javadoc/ThrowsTag.class | Bin 267 -> 0 bytes
.../tools/classes/com/sun/javadoc/Type.class | Bin 382 -> 0 bytes
.../classes/com/sun/javadoc/TypeVariable.class | Bin 250 -> 0 bytes
.../classes/com/sun/tools/doclets/Taglet.class | Bin 419 -> 0 bytes
.../tools/classes/com/sun/tools/javac/Main.class | Bin 3764 -> 0 bytes
.../classes/com/sun/tools/javac/Messages.class | Bin 1130 -> 0 bytes
.../tools/classes/com/sun/tools/javadoc/Main.class | Bin 453 -> 0 bytes
.../tools/classes/com/sun/tools/javah/Main.class | Bin 692 -> 0 bytes
.../FileSystemClassLoader$FileStreamInfo.class | Bin 1086 -> 0 bytes
.../FileSystemClassLoader$JarStreamInfo.class | Bin 1741 -> 0 bytes
.../tools/FileSystemClassLoader$StreamInfo.class | Bin 446 -> 0 bytes
.../classpath/tools/FileSystemClassLoader.class | Bin 6253 -> 0 bytes
.../classes/gnu/classpath/tools/IOToolkit.class | Bin 3753 -> 0 bytes
.../gnu/classpath/tools/MalformedInputEvent.class | Bin 1267 -> 0 bytes
.../classpath/tools/MalformedInputListener.class | Bin 228 -> 0 bytes
.../tools/NotifyingInputStreamReader.class | Bin 5878 -> 0 bytes
.../gnu/classpath/tools/StringToolkit.class | Bin 1124 -> 0 bytes
.../tools/appletviewer/AppletClassLoader.class | Bin 935 -> 0 bytes
.../tools/appletviewer/AppletSecurityManager.class | Bin 1193 -> 0 bytes
.../classpath/tools/appletviewer/AppletTag.class | Bin 8668 -> 0 bytes
.../tools/appletviewer/CommonAppletContext.class | Bin 2750 -> 0 bytes
.../tools/appletviewer/CommonAppletStub.class | Bin 1891 -> 0 bytes
.../classpath/tools/appletviewer/ErrorApplet.class | Bin 648 -> 0 bytes
.../gnu/classpath/tools/appletviewer/Main$1.class | Bin 828 -> 0 bytes
.../gnu/classpath/tools/appletviewer/Main$10.class | Bin 801 -> 0 bytes
.../gnu/classpath/tools/appletviewer/Main$2.class | Bin 828 -> 0 bytes
.../gnu/classpath/tools/appletviewer/Main$3.class | Bin 828 -> 0 bytes
.../gnu/classpath/tools/appletviewer/Main$4.class | Bin 973 -> 0 bytes
.../gnu/classpath/tools/appletviewer/Main$5.class | Bin 974 -> 0 bytes
.../gnu/classpath/tools/appletviewer/Main$6.class | Bin 915 -> 0 bytes
.../gnu/classpath/tools/appletviewer/Main$7.class | Bin 1067 -> 0 bytes
.../gnu/classpath/tools/appletviewer/Main$8.class | Bin 831 -> 0 bytes
.../gnu/classpath/tools/appletviewer/Main$9.class | Bin 799 -> 0 bytes
.../gnu/classpath/tools/appletviewer/Main.class | Bin 8053 -> 0 bytes
.../classpath/tools/appletviewer/Messages.class | Bin 1169 -> 0 bytes
.../tools/appletviewer/PluginAppletContext.class | Bin 1320 -> 0 bytes
.../tools/appletviewer/PluginAppletViewer.class | Bin 3918 -> 0 bytes
.../tools/appletviewer/PluginAppletWindow.class | Bin 8194 -> 0 bytes
.../appletviewer/StandaloneAppletContext.class | Bin 1397 -> 0 bytes
.../appletviewer/StandaloneAppletViewer.class | Bin 4309 -> 0 bytes
.../appletviewer/StandaloneAppletWindow$1.class | Bin 1119 -> 0 bytes
.../appletviewer/StandaloneAppletWindow.class | Bin 11928 -> 0 bytes
.../classpath/tools/appletviewer/TagParser.class | Bin 6630 -> 0 bytes
.../gnu/classpath/tools/common/CallbackUtil.class | Bin 2816 -> 0 bytes
.../tools/common/ClasspathToolParser$1.class | Bin 1028 -> 0 bytes
.../tools/common/ClasspathToolParser$2.class | Bin 983 -> 0 bytes
...lasspathToolParser$AtFileArgumentCallback.class | Bin 1727 -> 0 bytes
.../tools/common/ClasspathToolParser.class | Bin 4028 -> 0 bytes
.../gnu/classpath/tools/common/Messages.class | Bin 1151 -> 0 bytes
.../tools/common/Persistent$ExitTask.class | Bin 532 -> 0 bytes
.../gnu/classpath/tools/common/Persistent.class | Bin 570 -> 0 bytes
.../classpath/tools/common/ProviderUtil$1.class | Bin 891 -> 0 bytes
.../classpath/tools/common/ProviderUtil$2.class | Bin 705 -> 0 bytes
.../gnu/classpath/tools/common/ProviderUtil.class | Bin 2879 -> 0 bytes
.../tools/common/SecurityProviderInfo.class | Bin 1215 -> 0 bytes
.../doclets/AbstractDoclet$DocletOptionGroup.class | Bin 2172 -> 0 bytes
.../doclets/AbstractDoclet$DocletOptionTag.class | Bin 3296 -> 0 bytes
.../tools/doclets/AbstractDoclet$IndexKey.class | Bin 1373 -> 0 bytes
.../doclets/AbstractDoclet$InterfaceRelation.class | Bin 663 -> 0 bytes
.../tools/doclets/AbstractDoclet$UsageType.class | Bin 2065 -> 0 bytes
.../classpath/tools/doclets/AbstractDoclet.class | Bin 28956 -> 0 bytes
.../doclets/DocletConfigurationException.class | Bin 432 -> 0 bytes
.../gnu/classpath/tools/doclets/DocletOption.class | Bin 575 -> 0 bytes
.../tools/doclets/DocletOptionColonSeparated.class | Bin 1139 -> 0 bytes
.../classpath/tools/doclets/DocletOptionFile.class | Bin 962 -> 0 bytes
.../classpath/tools/doclets/DocletOptionFlag.class | Bin 755 -> 0 bytes
.../doclets/DocletOptionPackageWildcard.class | Bin 2108 -> 0 bytes
.../tools/doclets/DocletOptionString.class | Bin 776 -> 0 bytes
.../tools/doclets/InlineTagRenderer.class | Bin 258 -> 0 bytes
.../doclets/InvalidPackageWildcardException.class | Bin 437 -> 0 bytes
.../gnu/classpath/tools/doclets/PackageGroup.class | Bin 698 -> 0 bytes
.../classpath/tools/doclets/PackageMatcher.class | Bin 3230 -> 0 bytes
.../classpath/tools/doclets/StandardTaglet.class | Bin 1341 -> 0 bytes
.../classpath/tools/doclets/TagletPrinter.class | Bin 187 -> 0 bytes
.../tools/doclets/debugdoclet/DebugDoclet.class | Bin 4081 -> 0 bytes
.../tools/doclets/htmldoclet/CssClass.class | Bin 14612 -> 0 bytes
.../tools/doclets/htmldoclet/ExternalDocSet.class | Bin 3836 -> 0 bytes
.../tools/doclets/htmldoclet/HtmlDoclet$1.class | Bin 1205 -> 0 bytes
.../tools/doclets/htmldoclet/HtmlDoclet$2.class | Bin 1207 -> 0 bytes
.../tools/doclets/htmldoclet/HtmlDoclet$3.class | Bin 1401 -> 0 bytes
.../doclets/htmldoclet/HtmlDoclet$TreeNode.class | Bin 1435 -> 0 bytes
.../tools/doclets/htmldoclet/HtmlDoclet.class | Bin 81614 -> 0 bytes
.../tools/doclets/htmldoclet/HtmlPage.class | Bin 12297 -> 0 bytes
.../doclets/htmldoclet/HtmlTagletContext.class | Bin 876 -> 0 bytes
.../tools/doclets/xmldoclet/Driver$1.class | Bin 935 -> 0 bytes
.../xmldoclet/Driver$NullErrorReporter.class | Bin 793 -> 0 bytes
.../tools/doclets/xmldoclet/Driver$UsageType.class | Bin 1537 -> 0 bytes
.../classpath/tools/doclets/xmldoclet/Driver.class | Bin 52598 -> 0 bytes
.../tools/doclets/xmldoclet/Driver1_4.class | Bin 955 -> 0 bytes
.../doclets/xmldoclet/HtmlRepairer$TagInfo.class | Bin 1043 -> 0 bytes
.../tools/doclets/xmldoclet/HtmlRepairer.class | Bin 10463 -> 0 bytes
.../tools/doclets/xmldoclet/TargetContext.class | Bin 1172 -> 0 bytes
.../DocTranslet$DocErrorReporterOutputStream.class | Bin 1093 -> 0 bytes
.../xmldoclet/doctranslet/DocTranslet.class | Bin 14435 -> 0 bytes
.../DocTransletConfigurationException.class | Bin 774 -> 0 bytes
.../doctranslet/DocTransletException.class | Bin 1218 -> 0 bytes
.../xmldoclet/doctranslet/DocTransletOptions.class | Bin 865 -> 0 bytes
.../xmldoclet/doctranslet/JarClassLoader.class | Bin 2127 -> 0 bytes
.../xmldoclet/doctranslet/OutputFileInfo.class | Bin 1467 -> 0 bytes
.../tools/getopt/FileArgumentCallback.class | Bin 459 -> 0 bytes
.../gnu/classpath/tools/getopt/Messages.class | Bin 1151 -> 0 bytes
.../gnu/classpath/tools/getopt/Option.class | Bin 2640 -> 0 bytes
.../classpath/tools/getopt/OptionException.class | Bin 565 -> 0 bytes
.../gnu/classpath/tools/getopt/OptionGroup.class | Bin 3894 -> 0 bytes
.../gnu/classpath/tools/getopt/Parser$1.class | Bin 1061 -> 0 bytes
.../gnu/classpath/tools/getopt/Parser$2.class | Bin 1119 -> 0 bytes
.../gnu/classpath/tools/getopt/Parser$3.class | Bin 904 -> 0 bytes
.../gnu/classpath/tools/getopt/Parser.class | Bin 8255 -> 0 bytes
.../classpath/tools/gjdoc/AbstractTagImpl.class | Bin 2825 -> 0 bytes
.../tools/gjdoc/ArrayCharacterIterator.class | Bin 1762 -> 0 bytes
.../tools/gjdoc/BlockSourceComponent.class | Bin 629 -> 0 bytes
.../gnu/classpath/tools/gjdoc/BracketClose.class | Bin 862 -> 0 bytes
.../gnu/classpath/tools/gjdoc/ClassComponent.class | Bin 2610 -> 0 bytes
.../gnu/classpath/tools/gjdoc/ClassDocImpl.class | Bin 26937 -> 0 bytes
.../gnu/classpath/tools/gjdoc/ClassDocProxy.class | Bin 7652 -> 0 bytes
.../tools/gjdoc/ClassDocReflectedImpl.class | Bin 8760 -> 0 bytes
.../classpath/tools/gjdoc/CommentComponent.class | Bin 1517 -> 0 bytes
.../classpath/tools/gjdoc/ConstructorDocImpl.class | Bin 757 -> 0 bytes
.../classes/gnu/classpath/tools/gjdoc/Debug.class | Bin 1447 -> 0 bytes
.../tools/gjdoc/DirectoryTree$FileNode.class | Bin 943 -> 0 bytes
.../gnu/classpath/tools/gjdoc/DirectoryTree.class | Bin 1226 -> 0 bytes
.../gnu/classpath/tools/gjdoc/DocImpl.class | Bin 19208 -> 0 bytes
.../tools/gjdoc/EmptyStatementComponent.class | Bin 612 -> 0 bytes
.../gnu/classpath/tools/gjdoc/ErrorReporter.class | Bin 1660 -> 0 bytes
.../tools/gjdoc/ExecutableMemberDocImpl.class | Bin 9315 -> 0 bytes
.../gnu/classpath/tools/gjdoc/FieldComponent.class | Bin 3267 -> 0 bytes
.../gnu/classpath/tools/gjdoc/FieldDocImpl.class | Bin 8628 -> 0 bytes
.../classpath/tools/gjdoc/FunctionComponent.class | Bin 3194 -> 0 bytes
.../classpath/tools/gjdoc/GjdocPackageDoc.class | Bin 217 -> 0 bytes
.../gnu/classpath/tools/gjdoc/GjdocRootDoc.class | Bin 184 -> 0 bytes
.../tools/gjdoc/IgnoredFileParseException.class | Bin 357 -> 0 bytes
.../classpath/tools/gjdoc/ImportComponent.class | Bin 1226 -> 0 bytes
.../classpath/tools/gjdoc/InheritDocTagImpl.class | Bin 1838 -> 0 bytes
.../gnu/classpath/tools/gjdoc/JavadocWrapper.class | Bin 960 -> 0 bytes
.../gnu/classpath/tools/gjdoc/LinkTagImpl.class | Bin 918 -> 0 bytes
.../classes/gnu/classpath/tools/gjdoc/Main$1.class | Bin 928 -> 0 bytes
.../gnu/classpath/tools/gjdoc/Main$10.class | Bin 1691 -> 0 bytes
.../gnu/classpath/tools/gjdoc/Main$11.class | Bin 1728 -> 0 bytes
.../gnu/classpath/tools/gjdoc/Main$12.class | Bin 1799 -> 0 bytes
.../gnu/classpath/tools/gjdoc/Main$13.class | Bin 1799 -> 0 bytes
.../gnu/classpath/tools/gjdoc/Main$14.class | Bin 929 -> 0 bytes
.../gnu/classpath/tools/gjdoc/Main$15.class | Bin 923 -> 0 bytes
.../gnu/classpath/tools/gjdoc/Main$16.class | Bin 1715 -> 0 bytes
.../gnu/classpath/tools/gjdoc/Main$17.class | Bin 828 -> 0 bytes
.../gnu/classpath/tools/gjdoc/Main$18.class | Bin 809 -> 0 bytes
.../gnu/classpath/tools/gjdoc/Main$19.class | Bin 809 -> 0 bytes
.../classes/gnu/classpath/tools/gjdoc/Main$2.class | Bin 767 -> 0 bytes
.../gnu/classpath/tools/gjdoc/Main$20.class | Bin 1382 -> 0 bytes
.../gnu/classpath/tools/gjdoc/Main$21.class | Bin 1400 -> 0 bytes
.../gnu/classpath/tools/gjdoc/Main$22.class | Bin 809 -> 0 bytes
.../gnu/classpath/tools/gjdoc/Main$23.class | Bin 809 -> 0 bytes
.../gnu/classpath/tools/gjdoc/Main$24.class | Bin 809 -> 0 bytes
.../gnu/classpath/tools/gjdoc/Main$25.class | Bin 809 -> 0 bytes
.../classes/gnu/classpath/tools/gjdoc/Main$3.class | Bin 767 -> 0 bytes
.../classes/gnu/classpath/tools/gjdoc/Main$4.class | Bin 767 -> 0 bytes
.../classes/gnu/classpath/tools/gjdoc/Main$5.class | Bin 767 -> 0 bytes
.../classes/gnu/classpath/tools/gjdoc/Main$6.class | Bin 806 -> 0 bytes
.../classes/gnu/classpath/tools/gjdoc/Main$7.class | Bin 825 -> 0 bytes
.../classes/gnu/classpath/tools/gjdoc/Main$8.class | Bin 825 -> 0 bytes
.../classes/gnu/classpath/tools/gjdoc/Main$9.class | Bin 926 -> 0 bytes
.../tools/gjdoc/Main$OptionProcessor.class | Bin 727 -> 0 bytes
.../classes/gnu/classpath/tools/gjdoc/Main.class | Bin 28819 -> 0 bytes
.../gnu/classpath/tools/gjdoc/MemberDocImpl.class | Bin 5343 -> 0 bytes
.../gnu/classpath/tools/gjdoc/MethodDocImpl.class | Bin 1247 -> 0 bytes
.../classpath/tools/gjdoc/PackageComponent.class | Bin 1142 -> 0 bytes
.../gnu/classpath/tools/gjdoc/PackageDocImpl.class | Bin 6230 -> 0 bytes
.../gnu/classpath/tools/gjdoc/ParamTagImpl.class | Bin 1368 -> 0 bytes
.../gnu/classpath/tools/gjdoc/ParameterImpl.class | Bin 1682 -> 0 bytes
.../gnu/classpath/tools/gjdoc/ParseException.class | Bin 463 -> 0 bytes
.../gnu/classpath/tools/gjdoc/Parser$1.class | Bin 1669 -> 0 bytes
.../gnu/classpath/tools/gjdoc/Parser$Context.class | Bin 1510 -> 0 bytes
.../classes/gnu/classpath/tools/gjdoc/Parser.class | Bin 13661 -> 0 bytes
.../tools/gjdoc/ProgramElementDocImpl.class | Bin 3566 -> 0 bytes
.../tools/gjdoc/RootDocImpl$ResolvedImport.class | Bin 403 -> 0 bytes
.../RootDocImpl$ResolvedImportClassFile.class | Bin 3100 -> 0 bytes
.../gjdoc/RootDocImpl$ResolvedImportNotFound.class | Bin 1664 -> 0 bytes
.../RootDocImpl$ResolvedImportPackageFile.class | Bin 3932 -> 0 bytes
...RootDocImpl$ResolvedImportReflectionClass.class | Bin 1980 -> 0 bytes
...otDocImpl$ResolvedImportReflectionPackage.class | Bin 2039 -> 0 bytes
.../tools/gjdoc/RootDocImpl$ScheduledClass.class | Bin 1036 -> 0 bytes
.../gnu/classpath/tools/gjdoc/RootDocImpl.class | Bin 20857 -> 0 bytes
.../gnu/classpath/tools/gjdoc/SeeTagImpl.class | Bin 4114 -> 0 bytes
.../classpath/tools/gjdoc/SerialFieldTagImpl.class | Bin 2862 -> 0 bytes
.../tools/gjdoc/SlashSlashCommentComponent.class | Bin 556 -> 0 bytes
.../classpath/tools/gjdoc/SourceComponent.class | Bin 787 -> 0 bytes
.../classpath/tools/gjdoc/SourcePositionImpl.class | Bin 1095 -> 0 bytes
.../tools/gjdoc/StaticBlockComponent.class | Bin 1030 -> 0 bytes
.../gnu/classpath/tools/gjdoc/TagContainer.class | Bin 247 -> 0 bytes
.../gnu/classpath/tools/gjdoc/TagImpl.class | Bin 1350 -> 0 bytes
.../gnu/classpath/tools/gjdoc/TemporaryStore.class | Bin 548 -> 0 bytes
.../gnu/classpath/tools/gjdoc/TextTagImpl.class | Bin 1026 -> 0 bytes
.../gnu/classpath/tools/gjdoc/ThrowsTagImpl.class | Bin 2479 -> 0 bytes
.../classes/gnu/classpath/tools/gjdoc/Timer.class | Bin 2568 -> 0 bytes
.../gnu/classpath/tools/gjdoc/TimerDoclet$1.class | Bin 900 -> 0 bytes
.../gnu/classpath/tools/gjdoc/TimerDoclet.class | Bin 2637 -> 0 bytes
.../gnu/classpath/tools/gjdoc/TypeImpl.class | Bin 2694 -> 0 bytes
.../classpath/tools/gjdoc/TypeVariableImpl.class | Bin 1292 -> 0 bytes
.../gnu/classpath/tools/gjdoc/ValueTagImpl.class | Bin 1032 -> 0 bytes
.../gnu/classpath/tools/gjdoc/Whitespace.class | Bin 591 -> 0 bytes
.../gnu/classpath/tools/gjdoc/WritableType.class | Bin 309 -> 0 bytes
.../tools/gjdoc/expr/AdditionExpression.class | Bin 2306 -> 0 bytes
.../classpath/tools/gjdoc/expr/AndExpression.class | Bin 756 -> 0 bytes
.../tools/gjdoc/expr/BinaryBitwiseExpression.class | Bin 1711 -> 0 bytes
.../gjdoc/expr/BinaryComputationExpression.class | Bin 2769 -> 0 bytes
.../gjdoc/expr/BinaryEqualityExpression.class | Bin 2071 -> 0 bytes
.../tools/gjdoc/expr/BinaryExpression.class | Bin 615 -> 0 bytes
.../tools/gjdoc/expr/BinaryLogicalExpression.class | Bin 1593 -> 0 bytes
.../gjdoc/expr/BinaryRelationExpression.class | Bin 1928 -> 0 bytes
.../tools/gjdoc/expr/BinaryShiftExpression.class | Bin 1691 -> 0 bytes
.../tools/gjdoc/expr/BitShiftRightExpression.class | Bin 784 -> 0 bytes
.../gjdoc/expr/CircularExpressionException.class | Bin 618 -> 0 bytes
.../tools/gjdoc/expr/ConditionalExpression.class | Bin 1670 -> 0 bytes
.../tools/gjdoc/expr/ConstantBoolean.class | Bin 1371 -> 0 bytes
.../classpath/tools/gjdoc/expr/ConstantByte.class | Bin 1082 -> 0 bytes
.../classpath/tools/gjdoc/expr/ConstantChar.class | Bin 1634 -> 0 bytes
.../tools/gjdoc/expr/ConstantDouble.class | Bin 1288 -> 0 bytes
.../tools/gjdoc/expr/ConstantExpression.class | Bin 787 -> 0 bytes
.../classpath/tools/gjdoc/expr/ConstantFloat.class | Bin 1448 -> 0 bytes
.../tools/gjdoc/expr/ConstantInteger.class | Bin 1378 -> 0 bytes
.../classpath/tools/gjdoc/expr/ConstantLong.class | Bin 1599 -> 0 bytes
.../classpath/tools/gjdoc/expr/ConstantNull.class | Bin 829 -> 0 bytes
.../classpath/tools/gjdoc/expr/ConstantShort.class | Bin 1088 -> 0 bytes
.../tools/gjdoc/expr/ConstantString.class | Bin 1025 -> 0 bytes
.../gnu/classpath/tools/gjdoc/expr/Context.class | Bin 818 -> 0 bytes
.../tools/gjdoc/expr/DivisionExpression.class | Bin 959 -> 0 bytes
.../tools/gjdoc/expr/EqualExpression.class | Bin 1067 -> 0 bytes
.../gnu/classpath/tools/gjdoc/expr/Evaluator.class | Bin 3589 -> 0 bytes
.../tools/gjdoc/expr/EvaluatorEnvironment.class | Bin 482 -> 0 bytes
.../tools/gjdoc/expr/ExclusiveOrExpression.class | Bin 780 -> 0 bytes
.../classpath/tools/gjdoc/expr/Expression.class | Bin 333 -> 0 bytes
.../tools/gjdoc/expr/GreaterThanExpression.class | Bin 988 -> 0 bytes
.../gjdoc/expr/GreaterThanOrEqualExpression.class | Bin 1009 -> 0 bytes
.../tools/gjdoc/expr/IdentifierExpression.class | Bin 2874 -> 0 bytes
.../gjdoc/expr/IllegalExpressionException.class | Bin 577 -> 0 bytes
.../tools/gjdoc/expr/InclusiveOrExpression.class | Bin 773 -> 0 bytes
.../gnu/classpath/tools/gjdoc/expr/JavaLexer.class | Bin 27040 -> 0 bytes
.../tools/gjdoc/expr/JavaRecognizer.class | Bin 22390 -> 0 bytes
.../tools/gjdoc/expr/JavaTokenTypes.class | Bin 3902 -> 0 bytes
.../tools/gjdoc/expr/LessThanExpression.class | Bin 979 -> 0 bytes
.../gjdoc/expr/LessThanOrEqualExpression.class | Bin 1000 -> 0 bytes
.../tools/gjdoc/expr/LogicalAndExpression.class | Bin 693 -> 0 bytes
.../tools/gjdoc/expr/LogicalNotExpression.class | Bin 1557 -> 0 bytes
.../tools/gjdoc/expr/LogicalOrExpression.class | Bin 683 -> 0 bytes
.../tools/gjdoc/expr/ModuloExpression.class | Bin 953 -> 0 bytes
.../gjdoc/expr/MultiplicationExpression.class | Bin 977 -> 0 bytes
.../tools/gjdoc/expr/NegateExpression.class | Bin 1696 -> 0 bytes
.../tools/gjdoc/expr/NotEqualExpression.class | Bin 1071 -> 0 bytes
.../classpath/tools/gjdoc/expr/NotExpression.class | Bin 1467 -> 0 bytes
.../tools/gjdoc/expr/ShiftLeftExpression.class | Bin 772 -> 0 bytes
.../tools/gjdoc/expr/ShiftRightExpression.class | Bin 775 -> 0 bytes
.../tools/gjdoc/expr/SubtractionExpression.class | Bin 968 -> 0 bytes
.../gnu/classpath/tools/gjdoc/expr/Type.class | Bin 1324 -> 0 bytes
.../tools/gjdoc/expr/TypeCastExpression.class | Bin 2687 -> 0 bytes
.../tools/gjdoc/expr/UnaryExpression.class | Bin 524 -> 0 bytes
.../gjdoc/expr/UnknownIdentifierException.class | Bin 473 -> 0 bytes
.../classes/gnu/classpath/tools/jar/Action.class | Bin 393 -> 0 bytes
.../classes/gnu/classpath/tools/jar/Creator.class | Bin 7270 -> 0 bytes
.../classes/gnu/classpath/tools/jar/Entry.class | Bin 873 -> 0 bytes
.../gnu/classpath/tools/jar/Extractor.class | Bin 2938 -> 0 bytes
.../classes/gnu/classpath/tools/jar/Indexer.class | Bin 4278 -> 0 bytes
.../classes/gnu/classpath/tools/jar/Lister.class | Bin 2941 -> 0 bytes
.../classes/gnu/classpath/tools/jar/Main$1.class | Bin 977 -> 0 bytes
.../classes/gnu/classpath/tools/jar/Main$2.class | Bin 916 -> 0 bytes
.../classes/gnu/classpath/tools/jar/Main$3.class | Bin 912 -> 0 bytes
.../classes/gnu/classpath/tools/jar/Main$4.class | Bin 917 -> 0 bytes
.../classes/gnu/classpath/tools/jar/Main$5.class | Bin 1027 -> 0 bytes
.../classes/gnu/classpath/tools/jar/Main$6.class | Bin 979 -> 0 bytes
.../classes/gnu/classpath/tools/jar/Main$7.class | Bin 923 -> 0 bytes
.../gnu/classpath/tools/jar/Main$HandleFile.class | Bin 1151 -> 0 bytes
.../gnu/classpath/tools/jar/Main$JarParser.class | Bin 1469 -> 0 bytes
.../gnu/classpath/tools/jar/Main$ModeOption.class | Bin 1413 -> 0 bytes
.../classes/gnu/classpath/tools/jar/Main.class | Bin 5683 -> 0 bytes
.../classes/gnu/classpath/tools/jar/Messages.class | Bin 1142 -> 0 bytes
.../classes/gnu/classpath/tools/jar/Updater.class | Bin 2785 -> 0 bytes
.../classes/gnu/classpath/tools/jar/WorkSet.class | Bin 1708 -> 0 bytes
.../gnu/classpath/tools/jarsigner/HashUtils.class | Bin 2530 -> 0 bytes
.../gnu/classpath/tools/jarsigner/JarSigner.class | Bin 5541 -> 0 bytes
.../classpath/tools/jarsigner/JarVerifier.class | Bin 9461 -> 0 bytes
.../gnu/classpath/tools/jarsigner/Main$1.class | Bin 1187 -> 0 bytes
.../gnu/classpath/tools/jarsigner/Main$10.class | Bin 1136 -> 0 bytes
.../gnu/classpath/tools/jarsigner/Main$11.class | Bin 1138 -> 0 bytes
.../gnu/classpath/tools/jarsigner/Main$12.class | Bin 1201 -> 0 bytes
.../gnu/classpath/tools/jarsigner/Main$2.class | Bin 1188 -> 0 bytes
.../gnu/classpath/tools/jarsigner/Main$3.class | Bin 1192 -> 0 bytes
.../gnu/classpath/tools/jarsigner/Main$4.class | Bin 1190 -> 0 bytes
.../gnu/classpath/tools/jarsigner/Main$5.class | Bin 1193 -> 0 bytes
.../gnu/classpath/tools/jarsigner/Main$6.class | Bin 1199 -> 0 bytes
.../gnu/classpath/tools/jarsigner/Main$7.class | Bin 1130 -> 0 bytes
.../gnu/classpath/tools/jarsigner/Main$8.class | Bin 1129 -> 0 bytes
.../gnu/classpath/tools/jarsigner/Main$9.class | Bin 1131 -> 0 bytes
.../tools/jarsigner/Main$ToolParser.class | Bin 3938 -> 0 bytes
.../tools/jarsigner/Main$ToolParserCallback.class | Bin 1000 -> 0 bytes
.../gnu/classpath/tools/jarsigner/Main.class | Bin 12108 -> 0 bytes
.../gnu/classpath/tools/jarsigner/Messages.class | Bin 2707 -> 0 bytes
.../gnu/classpath/tools/jarsigner/SFHelper.class | Bin 11445 -> 0 bytes
.../tools/java2xhtml/Java2xhtml$State.class | Bin 900 -> 0 bytes
.../classpath/tools/java2xhtml/Java2xhtml.class | Bin 26673 -> 0 bytes
.../gnu/classpath/tools/javah/ClassWrapper.class | Bin 9260 -> 0 bytes
.../classpath/tools/javah/CniIncludePrinter.class | Bin 1929 -> 0 bytes
.../gnu/classpath/tools/javah/CniPrintStream.class | Bin 5411 -> 0 bytes
.../gnu/classpath/tools/javah/CniStubPrinter.class | Bin 4087 -> 0 bytes
.../gnu/classpath/tools/javah/FieldHelper.class | Bin 2118 -> 0 bytes
.../gnu/classpath/tools/javah/GcjhMain$1.class | Bin 1195 -> 0 bytes
.../gnu/classpath/tools/javah/GcjhMain$2.class | Bin 1195 -> 0 bytes
.../gnu/classpath/tools/javah/GcjhMain$3.class | Bin 1195 -> 0 bytes
.../gnu/classpath/tools/javah/GcjhMain$4.class | Bin 1195 -> 0 bytes
.../gnu/classpath/tools/javah/GcjhMain$5.class | Bin 990 -> 0 bytes
.../gnu/classpath/tools/javah/GcjhMain$6.class | Bin 928 -> 0 bytes
.../gnu/classpath/tools/javah/GcjhMain$7.class | Bin 928 -> 0 bytes
.../gnu/classpath/tools/javah/GcjhMain$8.class | Bin 928 -> 0 bytes
.../gnu/classpath/tools/javah/GcjhMain$9.class | Bin 928 -> 0 bytes
.../gnu/classpath/tools/javah/GcjhMain.class | Bin 3098 -> 0 bytes
.../gnu/classpath/tools/javah/JniHelper.class | Bin 2933 -> 0 bytes
.../classpath/tools/javah/JniIncludePrinter.class | Bin 4632 -> 0 bytes
.../gnu/classpath/tools/javah/JniPrintStream.class | Bin 3289 -> 0 bytes
.../gnu/classpath/tools/javah/JniStubPrinter.class | Bin 3599 -> 0 bytes
.../gnu/classpath/tools/javah/Keywords.class | Bin 3638 -> 0 bytes
.../classes/gnu/classpath/tools/javah/Main$1.class | Bin 1002 -> 0 bytes
.../gnu/classpath/tools/javah/Main$10.class | Bin 941 -> 0 bytes
.../classes/gnu/classpath/tools/javah/Main$2.class | Bin 1119 -> 0 bytes
.../classes/gnu/classpath/tools/javah/Main$3.class | Bin 1124 -> 0 bytes
.../classes/gnu/classpath/tools/javah/Main$4.class | Bin 1007 -> 0 bytes
.../classes/gnu/classpath/tools/javah/Main$5.class | Bin 1069 -> 0 bytes
.../classes/gnu/classpath/tools/javah/Main$6.class | Bin 939 -> 0 bytes
.../classes/gnu/classpath/tools/javah/Main$7.class | Bin 1064 -> 0 bytes
.../classes/gnu/classpath/tools/javah/Main$8.class | Bin 1064 -> 0 bytes
.../classes/gnu/classpath/tools/javah/Main$9.class | Bin 973 -> 0 bytes
.../classes/gnu/classpath/tools/javah/Main.class | Bin 12780 -> 0 bytes
.../gnu/classpath/tools/javah/MethodHelper.class | Bin 2993 -> 0 bytes
.../gnu/classpath/tools/javah/PackageWrapper.class | Bin 500 -> 0 bytes
.../classpath/tools/javah/PathOptionGroup$1.class | Bin 939 -> 0 bytes
.../classpath/tools/javah/PathOptionGroup$2.class | Bin 1104 -> 0 bytes
.../classpath/tools/javah/PathOptionGroup$3.class | Bin 1104 -> 0 bytes
.../classpath/tools/javah/PathOptionGroup$4.class | Bin 1103 -> 0 bytes
.../classpath/tools/javah/PathOptionGroup$5.class | Bin 1108 -> 0 bytes
.../classpath/tools/javah/PathOptionGroup$6.class | Bin 1107 -> 0 bytes
.../classpath/tools/javah/PathOptionGroup.class | Bin 3678 -> 0 bytes
.../gnu/classpath/tools/javah/Printer.class | Bin 2159 -> 0 bytes
.../classes/gnu/classpath/tools/javah/Text.class | Bin 565 -> 0 bytes
.../gnu/classpath/tools/keytool/CACertCmd$1.class | Bin 1036 -> 0 bytes
.../gnu/classpath/tools/keytool/CACertCmd$2.class | Bin 1030 -> 0 bytes
.../gnu/classpath/tools/keytool/CACertCmd$3.class | Bin 1029 -> 0 bytes
.../gnu/classpath/tools/keytool/CACertCmd$4.class | Bin 1034 -> 0 bytes
.../gnu/classpath/tools/keytool/CACertCmd$5.class | Bin 1041 -> 0 bytes
.../gnu/classpath/tools/keytool/CACertCmd$6.class | Bin 972 -> 0 bytes
.../gnu/classpath/tools/keytool/CACertCmd.class | Bin 6606 -> 0 bytes
.../gnu/classpath/tools/keytool/CertReqCmd$1.class | Bin 1035 -> 0 bytes
.../classpath/tools/keytool/CertReqCmd$10.class | Bin 987 -> 0 bytes
.../gnu/classpath/tools/keytool/CertReqCmd$2.class | Bin 1042 -> 0 bytes
.../gnu/classpath/tools/keytool/CertReqCmd$3.class | Bin 1045 -> 0 bytes
.../gnu/classpath/tools/keytool/CertReqCmd$4.class | Bin 1038 -> 0 bytes
.../gnu/classpath/tools/keytool/CertReqCmd$5.class | Bin 1036 -> 0 bytes
.../gnu/classpath/tools/keytool/CertReqCmd$6.class | Bin 1035 -> 0 bytes
.../gnu/classpath/tools/keytool/CertReqCmd$7.class | Bin 1040 -> 0 bytes
.../gnu/classpath/tools/keytool/CertReqCmd$8.class | Bin 1047 -> 0 bytes
.../gnu/classpath/tools/keytool/CertReqCmd$9.class | Bin 978 -> 0 bytes
.../gnu/classpath/tools/keytool/CertReqCmd.class | Bin 10372 -> 0 bytes
.../tools/keytool/Command$ShutdownHook.class | Bin 780 -> 0 bytes
.../gnu/classpath/tools/keytool/Command.class | Bin 19742 -> 0 bytes
.../gnu/classpath/tools/keytool/DeleteCmd$1.class | Bin 1029 -> 0 bytes
.../gnu/classpath/tools/keytool/DeleteCmd$2.class | Bin 1030 -> 0 bytes
.../gnu/classpath/tools/keytool/DeleteCmd$3.class | Bin 1029 -> 0 bytes
.../gnu/classpath/tools/keytool/DeleteCmd$4.class | Bin 1034 -> 0 bytes
.../gnu/classpath/tools/keytool/DeleteCmd$5.class | Bin 1041 -> 0 bytes
.../gnu/classpath/tools/keytool/DeleteCmd$6.class | Bin 972 -> 0 bytes
.../gnu/classpath/tools/keytool/DeleteCmd.class | Bin 5720 -> 0 bytes
.../gnu/classpath/tools/keytool/ExportCmd$1.class | Bin 1029 -> 0 bytes
.../gnu/classpath/tools/keytool/ExportCmd$2.class | Bin 1036 -> 0 bytes
.../gnu/classpath/tools/keytool/ExportCmd$3.class | Bin 1030 -> 0 bytes
.../gnu/classpath/tools/keytool/ExportCmd$4.class | Bin 1029 -> 0 bytes
.../gnu/classpath/tools/keytool/ExportCmd$5.class | Bin 1034 -> 0 bytes
.../gnu/classpath/tools/keytool/ExportCmd$6.class | Bin 1041 -> 0 bytes
.../gnu/classpath/tools/keytool/ExportCmd$7.class | Bin 968 -> 0 bytes
.../gnu/classpath/tools/keytool/ExportCmd$8.class | Bin 972 -> 0 bytes
.../gnu/classpath/tools/keytool/ExportCmd.class | Bin 6735 -> 0 bytes
.../gnu/classpath/tools/keytool/GenKeyCmd$1.class | Bin 1029 -> 0 bytes
.../gnu/classpath/tools/keytool/GenKeyCmd$10.class | Bin 1036 -> 0 bytes
.../gnu/classpath/tools/keytool/GenKeyCmd$11.class | Bin 1043 -> 0 bytes
.../gnu/classpath/tools/keytool/GenKeyCmd$12.class | Bin 974 -> 0 bytes
.../gnu/classpath/tools/keytool/GenKeyCmd$2.class | Bin 1036 -> 0 bytes
.../gnu/classpath/tools/keytool/GenKeyCmd$3.class | Bin 1034 -> 0 bytes
.../gnu/classpath/tools/keytool/GenKeyCmd$4.class | Bin 1036 -> 0 bytes
.../gnu/classpath/tools/keytool/GenKeyCmd$5.class | Bin 1029 -> 0 bytes
.../gnu/classpath/tools/keytool/GenKeyCmd$6.class | Bin 1032 -> 0 bytes
.../gnu/classpath/tools/keytool/GenKeyCmd$7.class | Bin 1035 -> 0 bytes
.../gnu/classpath/tools/keytool/GenKeyCmd$8.class | Bin 1030 -> 0 bytes
.../gnu/classpath/tools/keytool/GenKeyCmd$9.class | Bin 1029 -> 0 bytes
.../gnu/classpath/tools/keytool/GenKeyCmd.class | Bin 12086 -> 0 bytes
.../classpath/tools/keytool/IdentityDBCmd$1.class | Bin 1059 -> 0 bytes
.../classpath/tools/keytool/IdentityDBCmd$2.class | Bin 1054 -> 0 bytes
.../classpath/tools/keytool/IdentityDBCmd$3.class | Bin 1053 -> 0 bytes
.../classpath/tools/keytool/IdentityDBCmd$4.class | Bin 1058 -> 0 bytes
.../classpath/tools/keytool/IdentityDBCmd$5.class | Bin 1065 -> 0 bytes
.../classpath/tools/keytool/IdentityDBCmd$6.class | Bin 996 -> 0 bytes
.../classpath/tools/keytool/IdentityDBCmd.class | Bin 4563 -> 0 bytes
.../gnu/classpath/tools/keytool/ImportCmd$1.class | Bin 1029 -> 0 bytes
.../gnu/classpath/tools/keytool/ImportCmd$10.class | Bin 974 -> 0 bytes
.../gnu/classpath/tools/keytool/ImportCmd$2.class | Bin 1036 -> 0 bytes
.../gnu/classpath/tools/keytool/ImportCmd$3.class | Bin 1032 -> 0 bytes
.../gnu/classpath/tools/keytool/ImportCmd$4.class | Bin 973 -> 0 bytes
.../gnu/classpath/tools/keytool/ImportCmd$5.class | Bin 977 -> 0 bytes
.../gnu/classpath/tools/keytool/ImportCmd$6.class | Bin 1030 -> 0 bytes
.../gnu/classpath/tools/keytool/ImportCmd$7.class | Bin 1029 -> 0 bytes
.../gnu/classpath/tools/keytool/ImportCmd$8.class | Bin 1034 -> 0 bytes
.../gnu/classpath/tools/keytool/ImportCmd$9.class | Bin 1041 -> 0 bytes
.../gnu/classpath/tools/keytool/ImportCmd.class | Bin 17528 -> 0 bytes
.../classpath/tools/keytool/KeyCloneCmd$1.class | Bin 1041 -> 0 bytes
.../classpath/tools/keytool/KeyCloneCmd$2.class | Bin 1045 -> 0 bytes
.../classpath/tools/keytool/KeyCloneCmd$3.class | Bin 1044 -> 0 bytes
.../classpath/tools/keytool/KeyCloneCmd$4.class | Bin 1047 -> 0 bytes
.../classpath/tools/keytool/KeyCloneCmd$5.class | Bin 1042 -> 0 bytes
.../classpath/tools/keytool/KeyCloneCmd$6.class | Bin 1041 -> 0 bytes
.../classpath/tools/keytool/KeyCloneCmd$7.class | Bin 1046 -> 0 bytes
.../classpath/tools/keytool/KeyCloneCmd$8.class | Bin 1053 -> 0 bytes
.../classpath/tools/keytool/KeyCloneCmd$9.class | Bin 984 -> 0 bytes
.../gnu/classpath/tools/keytool/KeyCloneCmd.class | Bin 8733 -> 0 bytes
.../classpath/tools/keytool/KeyPasswdCmd$1.class | Bin 1047 -> 0 bytes
.../classpath/tools/keytool/KeyPasswdCmd$2.class | Bin 1050 -> 0 bytes
.../classpath/tools/keytool/KeyPasswdCmd$3.class | Bin 1053 -> 0 bytes
.../classpath/tools/keytool/KeyPasswdCmd$4.class | Bin 1048 -> 0 bytes
.../classpath/tools/keytool/KeyPasswdCmd$5.class | Bin 1047 -> 0 bytes
.../classpath/tools/keytool/KeyPasswdCmd$6.class | Bin 1052 -> 0 bytes
.../classpath/tools/keytool/KeyPasswdCmd$7.class | Bin 1059 -> 0 bytes
.../classpath/tools/keytool/KeyPasswdCmd$8.class | Bin 990 -> 0 bytes
.../gnu/classpath/tools/keytool/KeyPasswdCmd.class | Bin 8305 -> 0 bytes
.../gnu/classpath/tools/keytool/ListCmd$1.class | Bin 1017 -> 0 bytes
.../gnu/classpath/tools/keytool/ListCmd$2.class | Bin 1018 -> 0 bytes
.../gnu/classpath/tools/keytool/ListCmd$3.class | Bin 1017 -> 0 bytes
.../gnu/classpath/tools/keytool/ListCmd$4.class | Bin 1022 -> 0 bytes
.../gnu/classpath/tools/keytool/ListCmd$5.class | Bin 1029 -> 0 bytes
.../gnu/classpath/tools/keytool/ListCmd$6.class | Bin 960 -> 0 bytes
.../gnu/classpath/tools/keytool/ListCmd$7.class | Bin 956 -> 0 bytes
.../gnu/classpath/tools/keytool/ListCmd.class | Bin 8706 -> 0 bytes
.../tools/keytool/Main$NoParseOption.class | Bin 1130 -> 0 bytes
.../tools/keytool/Main$ShutdownHook.class | Bin 756 -> 0 bytes
.../classes/gnu/classpath/tools/keytool/Main.class | Bin 8838 -> 0 bytes
.../gnu/classpath/tools/keytool/Messages.class | Bin 2614 -> 0 bytes
.../classpath/tools/keytool/PrintCertCmd$1.class | Bin 1054 -> 0 bytes
.../classpath/tools/keytool/PrintCertCmd$2.class | Bin 990 -> 0 bytes
.../gnu/classpath/tools/keytool/PrintCertCmd.class | Bin 3871 -> 0 bytes
.../classpath/tools/keytool/SelfCertCmd$1.class | Bin 1041 -> 0 bytes
.../classpath/tools/keytool/SelfCertCmd$10.class | Bin 986 -> 0 bytes
.../classpath/tools/keytool/SelfCertCmd$2.class | Bin 1048 -> 0 bytes
.../classpath/tools/keytool/SelfCertCmd$3.class | Bin 1041 -> 0 bytes
.../classpath/tools/keytool/SelfCertCmd$4.class | Bin 1044 -> 0 bytes
.../classpath/tools/keytool/SelfCertCmd$5.class | Bin 1047 -> 0 bytes
.../classpath/tools/keytool/SelfCertCmd$6.class | Bin 1042 -> 0 bytes
.../classpath/tools/keytool/SelfCertCmd$7.class | Bin 1041 -> 0 bytes
.../classpath/tools/keytool/SelfCertCmd$8.class | Bin 1046 -> 0 bytes
.../classpath/tools/keytool/SelfCertCmd$9.class | Bin 1053 -> 0 bytes
.../gnu/classpath/tools/keytool/SelfCertCmd.class | Bin 8750 -> 0 bytes
.../classpath/tools/keytool/StorePasswdCmd$1.class | Bin 1065 -> 0 bytes
.../classpath/tools/keytool/StorePasswdCmd$2.class | Bin 1060 -> 0 bytes
.../classpath/tools/keytool/StorePasswdCmd$3.class | Bin 1059 -> 0 bytes
.../classpath/tools/keytool/StorePasswdCmd$4.class | Bin 1064 -> 0 bytes
.../classpath/tools/keytool/StorePasswdCmd$5.class | Bin 1071 -> 0 bytes
.../classpath/tools/keytool/StorePasswdCmd$6.class | Bin 1002 -> 0 bytes
.../classpath/tools/keytool/StorePasswdCmd.class | Bin 7050 -> 0 bytes
.../classpath/tools/native2ascii/Messages.class | Bin 1169 -> 0 bytes
.../tools/native2ascii/Native2ASCII$1.class | Bin 1264 -> 0 bytes
.../tools/native2ascii/Native2ASCII$2.class | Bin 1019 -> 0 bytes
.../tools/native2ascii/Native2ASCII$3.class | Bin 1019 -> 0 bytes
.../native2ascii/Native2ASCII$HandleFile.class | Bin 1088 -> 0 bytes
.../tools/native2ascii/Native2ASCII.class | Bin 4205 -> 0 bytes
.../classes/gnu/classpath/tools/orbd/Main$1.class | Bin 1106 -> 0 bytes
.../classes/gnu/classpath/tools/orbd/Main$2.class | Bin 1052 -> 0 bytes
.../classes/gnu/classpath/tools/orbd/Main$3.class | Bin 1048 -> 0 bytes
.../classes/gnu/classpath/tools/orbd/Main$4.class | Bin 969 -> 0 bytes
.../classes/gnu/classpath/tools/orbd/Main$5.class | Bin 721 -> 0 bytes
.../classes/gnu/classpath/tools/orbd/Main.class | Bin 5476 -> 0 bytes
.../gnu/classpath/tools/orbd/Messages.class | Bin 1145 -> 0 bytes
.../classpath/tools/orbd/PersistentContext.class | Bin 3047 -> 0 bytes
.../tools/orbd/PersistentContextMap.class | Bin 1138 -> 0 bytes
.../classpath/tools/orbd/PersistentMap$Entry.class | Bin 2457 -> 0 bytes
.../gnu/classpath/tools/orbd/PersistentMap.class | Bin 5547 -> 0 bytes
.../tools/rmic/AbstractMethodGenerator.class | Bin 232 -> 0 bytes
.../tools/rmic/ClassRmicCompiler$MethodRef.class | Bin 2976 -> 0 bytes
.../classpath/tools/rmic/ClassRmicCompiler.class | Bin 31874 -> 0 bytes
.../classpath/tools/rmic/CompilationError.class | Bin 624 -> 0 bytes
.../gnu/classpath/tools/rmic/Generator.class | Bin 2901 -> 0 bytes
.../classes/gnu/classpath/tools/rmic/GiopIo.class | Bin 2777 -> 0 bytes
.../gnu/classpath/tools/rmic/HashFinder.class | Bin 1064 -> 0 bytes
.../classes/gnu/classpath/tools/rmic/Main$1.class | Bin 969 -> 0 bytes
.../classes/gnu/classpath/tools/rmic/Main$10.class | Bin 971 -> 0 bytes
.../classes/gnu/classpath/tools/rmic/Main$11.class | Bin 900 -> 0 bytes
.../classes/gnu/classpath/tools/rmic/Main$12.class | Bin 971 -> 0 bytes
.../classes/gnu/classpath/tools/rmic/Main$13.class | Bin 971 -> 0 bytes
.../classes/gnu/classpath/tools/rmic/Main$14.class | Bin 971 -> 0 bytes
.../classes/gnu/classpath/tools/rmic/Main$15.class | Bin 1039 -> 0 bytes
.../classes/gnu/classpath/tools/rmic/Main$16.class | Bin 972 -> 0 bytes
.../classes/gnu/classpath/tools/rmic/Main$17.class | Bin 1039 -> 0 bytes
.../classes/gnu/classpath/tools/rmic/Main$18.class | Bin 900 -> 0 bytes
.../classes/gnu/classpath/tools/rmic/Main$2.class | Bin 969 -> 0 bytes
.../classes/gnu/classpath/tools/rmic/Main$3.class | Bin 969 -> 0 bytes
.../classes/gnu/classpath/tools/rmic/Main$4.class | Bin 1048 -> 0 bytes
.../classes/gnu/classpath/tools/rmic/Main$5.class | Bin 1048 -> 0 bytes
.../classes/gnu/classpath/tools/rmic/Main$6.class | Bin 960 -> 0 bytes
.../classes/gnu/classpath/tools/rmic/Main$7.class | Bin 960 -> 0 bytes
.../classes/gnu/classpath/tools/rmic/Main$8.class | Bin 969 -> 0 bytes
.../classes/gnu/classpath/tools/rmic/Main$9.class | Bin 969 -> 0 bytes
.../classes/gnu/classpath/tools/rmic/Main.class | Bin 6165 -> 0 bytes
.../gnu/classpath/tools/rmic/Messages.class | Bin 1145 -> 0 bytes
.../gnu/classpath/tools/rmic/MethodGenerator.class | Bin 5280 -> 0 bytes
.../gnu/classpath/tools/rmic/RMICException.class | Bin 555 -> 0 bytes
.../classpath/tools/rmic/RmiMethodGenerator.class | Bin 5116 -> 0 bytes
.../gnu/classpath/tools/rmic/RmicBackend.class | Bin 271 -> 0 bytes
.../tools/rmic/SourceGiopRmicCompiler.class | Bin 13494 -> 0 bytes
.../classpath/tools/rmic/SourceRmicCompiler.class | Bin 3894 -> 0 bytes
.../gnu/classpath/tools/rmic/Variables.class | Bin 3583 -> 0 bytes
.../gnu/classpath/tools/rmic/WrapUnWrapper.class | Bin 1244 -> 0 bytes
.../tools/rmid/ActivationSystemImpl.class | Bin 5285 -> 0 bytes
.../tools/rmid/ActivationSystemImpl_Stub.class | Bin 8775 -> 0 bytes
.../classes/gnu/classpath/tools/rmid/Main$1.class | Bin 1084 -> 0 bytes
.../classes/gnu/classpath/tools/rmid/Main$2.class | Bin 969 -> 0 bytes
.../classes/gnu/classpath/tools/rmid/Main$3.class | Bin 969 -> 0 bytes
.../classes/gnu/classpath/tools/rmid/Main$4.class | Bin 969 -> 0 bytes
.../classes/gnu/classpath/tools/rmid/Main$5.class | Bin 1048 -> 0 bytes
.../classes/gnu/classpath/tools/rmid/Main$6.class | Bin 983 -> 0 bytes
.../classes/gnu/classpath/tools/rmid/Main.class | Bin 5921 -> 0 bytes
.../gnu/classpath/tools/rmid/Messages.class | Bin 1145 -> 0 bytes
.../PersistentBidiHashTable$AdaptedReader.class | Bin 1111 -> 0 bytes
.../PersistentBidiHashTable$WriteToDiskTask.class | Bin 755 -> 0 bytes
.../tools/rmid/PersistentBidiHashTable.class | Bin 4185 -> 0 bytes
.../gnu/classpath/tools/rmiregistry/Main$1.class | Bin 1011 -> 0 bytes
.../gnu/classpath/tools/rmiregistry/Main$2.class | Bin 1011 -> 0 bytes
.../gnu/classpath/tools/rmiregistry/Main$3.class | Bin 1011 -> 0 bytes
.../gnu/classpath/tools/rmiregistry/Main$4.class | Bin 1090 -> 0 bytes
.../gnu/classpath/tools/rmiregistry/Main$5.class | Bin 965 -> 0 bytes
.../gnu/classpath/tools/rmiregistry/Main$6.class | Bin 883 -> 0 bytes
.../gnu/classpath/tools/rmiregistry/Main.class | Bin 5715 -> 0 bytes
.../gnu/classpath/tools/rmiregistry/Messages.class | Bin 1166 -> 0 bytes
.../PersistentHashTable$WriteToDiskTask.class | Bin 766 -> 0 bytes
.../tools/rmiregistry/PersistentHashTable.class | Bin 4109 -> 0 bytes
.../classpath/tools/rmiregistry/RegistryImpl.class | Bin 2955 -> 0 bytes
.../tools/rmiregistry/RegistryImpl_Skel.class | Bin 4191 -> 0 bytes
.../tools/rmiregistry/RegistryImpl_Stub.class | Bin 3829 -> 0 bytes
.../gnu/classpath/tools/serialver/Messages.class | Bin 1160 -> 0 bytes
.../classpath/tools/serialver/SerialVer$1.class | Bin 1171 -> 0 bytes
.../classpath/tools/serialver/SerialVer$2.class | Bin 1197 -> 0 bytes
.../classpath/tools/serialver/SerialVer$3.class | Bin 950 -> 0 bytes
.../gnu/classpath/tools/serialver/SerialVer.class | Bin 4636 -> 0 bytes
.../taglets/AuthorTaglet$EmailReplacement.class | Bin 714 -> 0 bytes
.../gnu/classpath/tools/taglets/AuthorTaglet.class | Bin 4878 -> 0 bytes
.../gnu/classpath/tools/taglets/CodeTaglet.class | Bin 1529 -> 0 bytes
.../classpath/tools/taglets/CopyrightTaglet.class | Bin 2366 -> 0 bytes
.../classpath/tools/taglets/DeprecatedTaglet.class | Bin 2371 -> 0 bytes
.../classpath/tools/taglets/GenericTaglet.class | Bin 2708 -> 0 bytes
.../tools/taglets/GnuExtendedTaglet.class | Bin 381 -> 0 bytes
.../gnu/classpath/tools/taglets/SinceTaglet.class | Bin 2962 -> 0 bytes
.../classpath/tools/taglets/TagletContext.class | Bin 858 -> 0 bytes
.../gnu/classpath/tools/taglets/ValueTaglet.class | Bin 2695 -> 0 bytes
.../classpath/tools/taglets/VersionTaglet.class | Bin 2580 -> 0 bytes
.../gnu/classpath/tools/tnameserv/Main$1.class | Bin 1136 -> 0 bytes
.../gnu/classpath/tools/tnameserv/Main$2.class | Bin 1082 -> 0 bytes
.../gnu/classpath/tools/tnameserv/Main.class | Bin 2391 -> 0 bytes
.../gnu/classpath/tools/tnameserv/Messages.class | Bin 1160 -> 0 bytes
.../gcj/tools/gc_analyze/BlockMap$PtrMarks.class | Bin 612 -> 0 bytes
.../gcj/tools/gc_analyze/BlockMap$SizeKind.class | Bin 1004 -> 0 bytes
.../gnu/gcj/tools/gc_analyze/BlockMap.class | Bin 5443 -> 0 bytes
.../classes/gnu/gcj/tools/gc_analyze/BytePtr.class | Bin 2466 -> 0 bytes
.../gnu/gcj/tools/gc_analyze/ItemList.class | Bin 3477 -> 0 bytes
.../tools/gc_analyze/MemoryAnalyze$1$Info.class | Bin 510 -> 0 bytes
.../gnu/gcj/tools/gc_analyze/MemoryAnalyze$1.class | Bin 1109 -> 0 bytes
.../gnu/gcj/tools/gc_analyze/MemoryAnalyze$2.class | Bin 1109 -> 0 bytes
.../gnu/gcj/tools/gc_analyze/MemoryAnalyze$3.class | Bin 1073 -> 0 bytes
.../gnu/gcj/tools/gc_analyze/MemoryAnalyze$4.class | Bin 1086 -> 0 bytes
.../gc_analyze/MemoryAnalyze$OptionParser.class | Bin 2636 -> 0 bytes
.../MemoryAnalyze$SubstringComparator.class | Bin 1269 -> 0 bytes
.../gnu/gcj/tools/gc_analyze/MemoryAnalyze.class | Bin 10680 -> 0 bytes
.../gnu/gcj/tools/gc_analyze/MemoryMap$Range.class | Bin 714 -> 0 bytes
.../gc_analyze/MemoryMap$RangeComparator.class | Bin 1080 -> 0 bytes
.../gnu/gcj/tools/gc_analyze/MemoryMap.class | Bin 7398 -> 0 bytes
.../tools/gc_analyze/ObjectMap$ObjectItem.class | Bin 894 -> 0 bytes
.../gnu/gcj/tools/gc_analyze/ObjectMap.class | Bin 4140 -> 0 bytes
.../gnu/gcj/tools/gc_analyze/SymbolLookup.class | Bin 2485 -> 0 bytes
.../gnu/gcj/tools/gc_analyze/SymbolTable.class | Bin 5783 -> 0 bytes
.../gnu/gcj/tools/gc_analyze/ToolPrefix.class | Bin 1051 -> 0 bytes
.../tools/classes/sun/rmi/rmic/Main.class | Bin 985 -> 0 bytes
.../tools/classes/sun/rmi/rmic/Messages.class | Bin 1109 -> 0 bytes
.../classpath/tools/com/sun/javadoc/ClassDoc.java | 321 --
.../tools/com/sun/javadoc/ConstructorDoc.java | 56 -
libjava/classpath/tools/com/sun/javadoc/Doc.java | 264 --
.../tools/com/sun/javadoc/DocErrorReporter.java | 76 -
.../classpath/tools/com/sun/javadoc/Doclet.java | 98 -
.../tools/com/sun/javadoc/ExecutableMemberDoc.java | 137 -
.../classpath/tools/com/sun/javadoc/FieldDoc.java | 112 -
.../classpath/tools/com/sun/javadoc/MemberDoc.java | 59 -
.../classpath/tools/com/sun/javadoc/MethodDoc.java | 79 -
.../tools/com/sun/javadoc/PackageDoc.java | 108 -
.../classpath/tools/com/sun/javadoc/ParamTag.java | 65 -
.../classpath/tools/com/sun/javadoc/Parameter.java | 87 -
.../tools/com/sun/javadoc/ProgramElementDoc.java | 169 -
.../classpath/tools/com/sun/javadoc/RootDoc.java | 111 -
.../classpath/tools/com/sun/javadoc/SeeTag.java | 108 -
.../tools/com/sun/javadoc/SerialFieldTag.java | 101 -
.../tools/com/sun/javadoc/SourcePosition.java | 68 -
libjava/classpath/tools/com/sun/javadoc/Tag.java | 106 -
.../classpath/tools/com/sun/javadoc/ThrowsTag.java | 75 -
libjava/classpath/tools/com/sun/javadoc/Type.java | 119 -
.../tools/com/sun/javadoc/TypeVariable.java | 73 -
.../tools/com/sun/tools/doclets/Taglet.java | 63 -
.../classpath/tools/com/sun/tools/javac/Main.java | 158 -
.../tools/com/sun/tools/javac/Messages.java | 67 -
.../tools/com/sun/tools/javadoc/Main.java | 46 -
.../classpath/tools/com/sun/tools/javah/Main.java | 58 -
.../asm/org/objectweb/asm/AnnotationVisitor.java | 88 -
.../asm/org/objectweb/asm/AnnotationWriter.java | 311 --
.../external/asm/org/objectweb/asm/Attribute.java | 254 --
.../external/asm/org/objectweb/asm/ByteVector.java | 293 --
.../asm/org/objectweb/asm/ClassAdapter.java | 121 -
.../asm/org/objectweb/asm/ClassReader.java | 1606 --------
.../asm/org/objectweb/asm/ClassVisitor.java | 195 -
.../asm/org/objectweb/asm/ClassWriter.java | 1162 ------
.../tools/external/asm/org/objectweb/asm/Edge.java | 57 -
.../asm/org/objectweb/asm/FieldVisitor.java | 63 -
.../asm/org/objectweb/asm/FieldWriter.java | 276 --
.../external/asm/org/objectweb/asm/Handler.java | 70 -
.../tools/external/asm/org/objectweb/asm/Item.java | 252 --
.../external/asm/org/objectweb/asm/Label.java | 299 --
.../asm/org/objectweb/asm/MethodAdapter.java | 185 -
.../asm/org/objectweb/asm/MethodVisitor.java | 334 --
.../asm/org/objectweb/asm/MethodWriter.java | 2022 ----------
.../external/asm/org/objectweb/asm/Opcodes.java | 295 --
.../tools/external/asm/org/objectweb/asm/Type.java | 760 ----
.../org/objectweb/asm/attrs/StackMapAttribute.java | 378 --
.../asm/org/objectweb/asm/attrs/StackMapFrame.java | 82 -
.../asm/attrs/StackMapTableAttribute.java | 927 -----
.../asm/org/objectweb/asm/attrs/StackMapType.java | 114 -
.../org/objectweb/asm/commons/AdviceAdapter.java | 642 ----
.../org/objectweb/asm/commons/EmptyVisitor.java | 211 --
.../objectweb/asm/commons/GeneratorAdapter.java | 1454 --------
.../asm/commons/LocalVariablesSorter.java | 136 -
.../asm/org/objectweb/asm/commons/Method.java | 220 --
.../asm/commons/SerialVersionUIDAdder.java | 490 ---
.../objectweb/asm/commons/StaticInitMerger.java | 99 -
.../asm/commons/TableSwitchGenerator.java | 55 -
.../optimizer/AnnotationConstantsCollector.java | 150 -
.../asm/optimizer/ClassConstantsCollector.java | 212 --
.../objectweb/asm/optimizer/ClassOptimizer.java | 182 -
.../asm/org/objectweb/asm/optimizer/Constant.java | 265 --
.../org/objectweb/asm/optimizer/ConstantPool.java | 198 -
.../asm/optimizer/FieldConstantsCollector.java | 76 -
.../org/objectweb/asm/optimizer/JarOptimizer.java | 87 -
.../asm/optimizer/MethodConstantsCollector.java | 168 -
.../objectweb/asm/optimizer/MethodOptimizer.java | 108 -
.../org/objectweb/asm/optimizer/NameMapping.java | 101 -
.../asm/org/objectweb/asm/optimizer/Shrinker.java | 168 -
.../org/objectweb/asm/optimizer/shrink.properties | 225 --
.../objectweb/asm/signature/SignatureReader.java | 233 --
.../objectweb/asm/signature/SignatureVisitor.java | 185 -
.../objectweb/asm/signature/SignatureWriter.java | 207 --
.../org/objectweb/asm/tree/AbstractInsnNode.java | 143 -
.../asm/org/objectweb/asm/tree/AnnotationNode.java | 187 -
.../asm/org/objectweb/asm/tree/ClassNode.java | 283 --
.../asm/org/objectweb/asm/tree/FieldInsnNode.java | 97 -
.../asm/org/objectweb/asm/tree/FieldNode.java | 123 -
.../asm/org/objectweb/asm/tree/IincInsnNode.java | 71 -
.../asm/org/objectweb/asm/tree/InnerClassNode.java | 101 -
.../asm/org/objectweb/asm/tree/InsnNode.java | 96 -
.../asm/org/objectweb/asm/tree/IntInsnNode.java | 75 -
.../asm/org/objectweb/asm/tree/JumpInsnNode.java | 84 -
.../asm/org/objectweb/asm/tree/LabelNode.java | 54 -
.../asm/org/objectweb/asm/tree/LdcInsnNode.java | 68 -
.../asm/org/objectweb/asm/tree/LineNumberNode.java | 73 -
.../org/objectweb/asm/tree/LocalVariableNode.java | 111 -
.../objectweb/asm/tree/LookupSwitchInsnNode.java | 103 -
.../asm/org/objectweb/asm/tree/MemberNode.java | 120 -
.../asm/org/objectweb/asm/tree/MethodInsnNode.java | 98 -
.../asm/org/objectweb/asm/tree/MethodNode.java | 439 ---
.../objectweb/asm/tree/MultiANewArrayInsnNode.java | 71 -
.../objectweb/asm/tree/TableSwitchInsnNode.java | 102 -
.../org/objectweb/asm/tree/TryCatchBlockNode.java | 93 -
.../asm/org/objectweb/asm/tree/TypeInsnNode.java | 78 -
.../asm/org/objectweb/asm/tree/VarInsnNode.java | 81 -
.../org/objectweb/asm/tree/analysis/Analyzer.java | 416 ---
.../asm/tree/analysis/AnalyzerException.java | 56 -
.../asm/tree/analysis/BasicInterpreter.java | 335 --
.../objectweb/asm/tree/analysis/BasicValue.java | 105 -
.../objectweb/asm/tree/analysis/BasicVerifier.java | 428 ---
.../asm/tree/analysis/DataflowInterpreter.java | 174 -
.../objectweb/asm/tree/analysis/DataflowValue.java | 92 -
.../asm/org/objectweb/asm/tree/analysis/Frame.java | 670 ----
.../org/objectweb/asm/tree/analysis/IntMap.java | 73 -
.../objectweb/asm/tree/analysis/Interpreter.java | 178 -
.../asm/tree/analysis/SimpleVerifier.java | 266 --
.../org/objectweb/asm/tree/analysis/SmallSet.java | 126 -
.../objectweb/asm/tree/analysis/Subroutine.java | 96 -
.../asm/org/objectweb/asm/tree/analysis/Value.java | 45 -
.../asm/util/ASMifierAbstractVisitor.java | 226 --
.../asm/util/ASMifierAnnotationVisitor.java | 127 -
.../objectweb/asm/util/ASMifierClassVisitor.java | 607 ---
.../objectweb/asm/util/ASMifierFieldVisitor.java | 50 -
.../objectweb/asm/util/ASMifierMethodVisitor.java | 347 --
.../org/objectweb/asm/util/AbstractVisitor.java | 201 -
.../objectweb/asm/util/CheckAnnotationAdapter.java | 125 -
.../org/objectweb/asm/util/CheckClassAdapter.java | 416 ---
.../org/objectweb/asm/util/CheckFieldAdapter.java | 75 -
.../org/objectweb/asm/util/CheckMethodAdapter.java | 942 -----
.../objectweb/asm/util/TraceAbstractVisitor.java | 180 -
.../objectweb/asm/util/TraceAnnotationVisitor.java | 272 --
.../org/objectweb/asm/util/TraceClassVisitor.java | 534 ---
.../org/objectweb/asm/util/TraceFieldVisitor.java | 78 -
.../org/objectweb/asm/util/TraceMethodVisitor.java | 486 ---
.../objectweb/asm/util/TraceSignatureVisitor.java | 300 --
.../asm/util/attrs/ASMStackMapAttribute.java | 223 --
.../asm/util/attrs/ASMStackMapTableAttribute.java | 214 --
.../org/objectweb/asm/util/attrs/ASMifiable.java | 53 -
.../org/objectweb/asm/util/attrs/Traceable.java | 52 -
.../org/objectweb/asm/xml/ASMContentHandler.java | 1215 ------
.../asm/org/objectweb/asm/xml/Processor.java | 1048 ------
.../asm/org/objectweb/asm/xml/SAXAdapter.java | 91 -
.../objectweb/asm/xml/SAXAnnotationAdapter.java | 191 -
.../asm/org/objectweb/asm/xml/SAXClassAdapter.java | 351 --
.../asm/org/objectweb/asm/xml/SAXCodeAdapter.java | 310 --
.../asm/org/objectweb/asm/xml/SAXFieldAdapter.java | 77 -
libjava/classpath/tools/gappletviewer.in | 47 -
.../gnu/classpath/tools/gjdoc/expr/JavaLexer.java | 1962 ----------
.../gnu/classpath/tools/gjdoc/expr/JavaLexer.smap | 1280 -------
.../classpath/tools/gjdoc/expr/JavaRecognizer.java | 1406 -------
.../classpath/tools/gjdoc/expr/JavaRecognizer.smap | 987 -----
.../classpath/tools/gjdoc/expr/JavaTokenTypes.java | 122 -
.../classpath/tools/gjdoc/expr/JavaTokenTypes.txt | 116 -
libjava/classpath/tools/gjar.in | 48 -
libjava/classpath/tools/gjarsigner.in | 48 -
libjava/classpath/tools/gjavah.in | 48 -
libjava/classpath/tools/gjdoc.in | 49 -
libjava/classpath/tools/gkeytool.in | 48 -
libjava/classpath/tools/gnative2ascii.in | 48 -
.../gnu/classpath/tools/FileSystemClassLoader.java | 312 --
.../tools/gnu/classpath/tools/IOToolkit.java | 216 --
.../gnu/classpath/tools/MalformedInputEvent.java | 110 -
.../classpath/tools/MalformedInputListener.java | 56 -
.../tools/NotifyingInputStreamReader.java | 423 ---
.../tools/gnu/classpath/tools/StringToolkit.java | 84 -
.../tools/appletviewer/AppletClassLoader.java | 81 -
.../tools/appletviewer/AppletSecurityManager.java | 95 -
.../classpath/tools/appletviewer/AppletTag.java | 489 ---
.../tools/appletviewer/CommonAppletContext.java | 133 -
.../tools/appletviewer/CommonAppletStub.java | 139 -
.../classpath/tools/appletviewer/ErrorApplet.java | 53 -
.../gnu/classpath/tools/appletviewer/Main.java | 323 --
.../gnu/classpath/tools/appletviewer/Messages.java | 67 -
.../tools/appletviewer/PluginAppletContext.java | 72 -
.../tools/appletviewer/PluginAppletViewer.java | 178 -
.../tools/appletviewer/PluginAppletWindow.java | 448 ---
.../appletviewer/StandaloneAppletContext.java | 76 -
.../tools/appletviewer/StandaloneAppletViewer.java | 148 -
.../tools/appletviewer/StandaloneAppletWindow.java | 560 ---
.../classpath/tools/appletviewer/TagParser.java | 356 --
.../gnu/classpath/tools/common/CallbackUtil.java | 145 -
.../tools/common/ClasspathToolParser.java | 239 --
.../tools/gnu/classpath/tools/common/Messages.java | 67 -
.../gnu/classpath/tools/common/Persistent.java | 87 -
.../gnu/classpath/tools/common/ProviderUtil.java | 163 -
.../tools/common/SecurityProviderInfo.java | 99 -
.../classpath/tools/doclets/AbstractDoclet.java | 1275 -------
.../doclets/DocletConfigurationException.java | 54 -
.../gnu/classpath/tools/doclets/DocletOption.java | 56 -
.../tools/doclets/DocletOptionColonSeparated.java | 76 -
.../classpath/tools/doclets/DocletOptionFile.java | 77 -
.../classpath/tools/doclets/DocletOptionFlag.java | 69 -
.../tools/doclets/DocletOptionPackageWildcard.java | 124 -
.../tools/doclets/DocletOptionString.java | 68 -
.../classpath/tools/doclets/InlineTagRenderer.java | 46 -
.../doclets/InvalidPackageWildcardException.java | 51 -
.../gnu/classpath/tools/doclets/PackageGroup.java | 58 -
.../classpath/tools/doclets/PackageMatcher.java | 152 -
.../classpath/tools/doclets/StandardTaglet.java | 100 -
.../gnu/classpath/tools/doclets/TagletPrinter.java | 46 -
.../tools/doclets/debugdoclet/DebugDoclet.java | 174 -
.../tools/doclets/htmldoclet/CssClass.java | 300 --
.../tools/doclets/htmldoclet/ExternalDocSet.java | 187 -
.../tools/doclets/htmldoclet/HtmlDoclet.java | 3883 --------------------
.../tools/doclets/htmldoclet/HtmlPage.java | 535 ---
.../doclets/htmldoclet/HtmlTagletContext.java | 65 -
.../classpath/tools/doclets/xmldoclet/Driver.java | 2451 ------------
.../tools/doclets/xmldoclet/Driver1_4.java | 84 -
.../tools/doclets/xmldoclet/HtmlRepairer.java | 690 ----
.../tools/doclets/xmldoclet/TargetContext.java | 103 -
.../doclets/xmldoclet/doctranslet/DocTranslet.java | 460 ---
.../DocTransletConfigurationException.java | 53 -
.../doctranslet/DocTransletException.java | 63 -
.../xmldoclet/doctranslet/DocTransletOptions.java | 62 -
.../xmldoclet/doctranslet/JarClassLoader.java | 91 -
.../xmldoclet/doctranslet/OutputFileInfo.java | 66 -
.../tools/getopt/FileArgumentCallback.java | 62 -
.../tools/gnu/classpath/tools/getopt/Messages.java | 67 -
.../tools/gnu/classpath/tools/getopt/Option.java | 266 --
.../classpath/tools/getopt/OptionException.java | 58 -
.../gnu/classpath/tools/getopt/OptionGroup.java | 268 --
.../tools/gnu/classpath/tools/getopt/Parser.java | 495 ---
.../gnu/classpath/tools/gjdoc/AbstractTagImpl.java | 107 -
.../tools/gjdoc/ArrayCharacterIterator.java | 121 -
.../gnu/classpath/tools/gjdoc/ClassDocImpl.java | 1260 -------
.../gnu/classpath/tools/gjdoc/ClassDocProxy.java | 164 -
.../tools/gjdoc/ClassDocReflectedImpl.java | 224 --
.../classpath/tools/gjdoc/ConstructorDocImpl.java | 59 -
.../tools/gnu/classpath/tools/gjdoc/Debug.java | 67 -
.../gnu/classpath/tools/gjdoc/DirectoryTree.java | 74 -
.../tools/gnu/classpath/tools/gjdoc/DocImpl.java | 1090 ------
.../gnu/classpath/tools/gjdoc/ErrorReporter.java | 121 -
.../tools/gjdoc/ExecutableMemberDocImpl.java | 427 ---
.../gnu/classpath/tools/gjdoc/FieldDocImpl.java | 408 --
.../gnu/classpath/tools/gjdoc/GjdocPackageDoc.java | 56 -
.../gnu/classpath/tools/gjdoc/GjdocRootDoc.java | 56 -
.../classpath/tools/gjdoc/InheritDocTagImpl.java | 103 -
.../gnu/classpath/tools/gjdoc/JavadocWrapper.java | 53 -
.../gnu/classpath/tools/gjdoc/LinkTagImpl.java | 63 -
.../tools/gnu/classpath/tools/gjdoc/Main.java | 1829 ---------
.../gnu/classpath/tools/gjdoc/MemberDocImpl.java | 235 --
.../gnu/classpath/tools/gjdoc/MethodDocImpl.java | 64 -
.../gnu/classpath/tools/gjdoc/PackageDocImpl.java | 223 --
.../gnu/classpath/tools/gjdoc/ParamTagImpl.java | 81 -
.../gnu/classpath/tools/gjdoc/ParameterImpl.java | 69 -
.../gnu/classpath/tools/gjdoc/ParseException.java | 51 -
.../tools/gnu/classpath/tools/gjdoc/Parser.java | 1078 ------
.../tools/gjdoc/ProgramElementDocImpl.java | 177 -
.../gnu/classpath/tools/gjdoc/RootDocImpl.java | 1334 -------
.../gnu/classpath/tools/gjdoc/SeeTagImpl.java | 215 --
.../classpath/tools/gjdoc/SerialFieldTagImpl.java | 128 -
.../classpath/tools/gjdoc/SourcePositionImpl.java | 77 -
.../gnu/classpath/tools/gjdoc/TagContainer.java | 52 -
.../tools/gnu/classpath/tools/gjdoc/TagImpl.java | 60 -
.../gnu/classpath/tools/gjdoc/TemporaryStore.java | 132 -
.../gnu/classpath/tools/gjdoc/TextTagImpl.java | 56 -
.../gnu/classpath/tools/gjdoc/ThrowsTagImpl.java | 105 -
.../tools/gnu/classpath/tools/gjdoc/Timer.java | 88 -
.../gnu/classpath/tools/gjdoc/TimerDoclet.java | 104 -
.../tools/gnu/classpath/tools/gjdoc/TypeImpl.java | 109 -
.../classpath/tools/gjdoc/TypeVariableImpl.java | 108 -
.../gnu/classpath/tools/gjdoc/ValueTagImpl.java | 65 -
.../gnu/classpath/tools/gjdoc/WritableType.java | 44 -
.../tools/gjdoc/expr/AdditionExpression.java | 86 -
.../classpath/tools/gjdoc/expr/AndExpression.java | 57 -
.../tools/gjdoc/expr/BinaryBitwiseExpression.java | 68 -
.../gjdoc/expr/BinaryComputationExpression.java | 92 -
.../tools/gjdoc/expr/BinaryEqualityExpression.java | 89 -
.../tools/gjdoc/expr/BinaryExpression.java | 51 -
.../tools/gjdoc/expr/BinaryLogicalExpression.java | 64 -
.../tools/gjdoc/expr/BinaryRelationExpression.java | 82 -
.../tools/gjdoc/expr/BinaryShiftExpression.java | 66 -
.../tools/gjdoc/expr/BitShiftRightExpression.java | 57 -
.../gjdoc/expr/CircularExpressionException.java | 52 -
.../tools/gjdoc/expr/ConditionalExpression.java | 74 -
.../tools/gjdoc/expr/ConstantBoolean.java | 84 -
.../classpath/tools/gjdoc/expr/ConstantByte.java | 74 -
.../classpath/tools/gjdoc/expr/ConstantChar.java | 98 -
.../classpath/tools/gjdoc/expr/ConstantDouble.java | 79 -
.../tools/gjdoc/expr/ConstantExpression.java | 52 -
.../classpath/tools/gjdoc/expr/ConstantFloat.java | 79 -
.../tools/gjdoc/expr/ConstantInteger.java | 79 -
.../classpath/tools/gjdoc/expr/ConstantLong.java | 84 -
.../classpath/tools/gjdoc/expr/ConstantNull.java | 66 -
.../classpath/tools/gjdoc/expr/ConstantShort.java | 74 -
.../classpath/tools/gjdoc/expr/ConstantString.java | 74 -
.../gnu/classpath/tools/gjdoc/expr/Context.java | 62 -
.../tools/gjdoc/expr/DivisionExpression.java | 67 -
.../tools/gjdoc/expr/EqualExpression.java | 72 -
.../gnu/classpath/tools/gjdoc/expr/Evaluator.java | 150 -
.../tools/gjdoc/expr/EvaluatorEnvironment.java | 48 -
.../tools/gjdoc/expr/ExclusiveOrExpression.java | 57 -
.../gnu/classpath/tools/gjdoc/expr/Expression.java | 44 -
.../tools/gjdoc/expr/GreaterThanExpression.java | 67 -
.../gjdoc/expr/GreaterThanOrEqualExpression.java | 67 -
.../tools/gjdoc/expr/IdentifierExpression.java | 89 -
.../gjdoc/expr/IllegalExpressionException.java | 52 -
.../tools/gjdoc/expr/InclusiveOrExpression.java | 57 -
.../tools/gjdoc/expr/LessThanExpression.java | 67 -
.../gjdoc/expr/LessThanOrEqualExpression.java | 67 -
.../tools/gjdoc/expr/LogicalAndExpression.java | 52 -
.../tools/gjdoc/expr/LogicalNotExpression.java | 60 -
.../tools/gjdoc/expr/LogicalOrExpression.java | 52 -
.../tools/gjdoc/expr/ModuloExpression.java | 67 -
.../tools/gjdoc/expr/MultiplicationExpression.java | 67 -
.../tools/gjdoc/expr/NegateExpression.java | 66 -
.../tools/gjdoc/expr/NotEqualExpression.java | 72 -
.../classpath/tools/gjdoc/expr/NotExpression.java | 60 -
.../tools/gjdoc/expr/ShiftLeftExpression.java | 57 -
.../tools/gjdoc/expr/ShiftRightExpression.java | 57 -
.../tools/gjdoc/expr/SubtractionExpression.java | 67 -
.../tools/gnu/classpath/tools/gjdoc/expr/Type.java | 60 -
.../tools/gjdoc/expr/TypeCastExpression.java | 87 -
.../tools/gjdoc/expr/UnaryExpression.java | 49 -
.../gjdoc/expr/UnknownIdentifierException.java | 47 -
.../classpath/tools/gjdoc/expr/java-expression.g | 471 ---
.../tools/gnu/classpath/tools/jar/Action.java | 51 -
.../tools/gnu/classpath/tools/jar/Creator.java | 251 --
.../tools/gnu/classpath/tools/jar/Entry.java | 70 -
.../tools/gnu/classpath/tools/jar/Extractor.java | 127 -
.../tools/gnu/classpath/tools/jar/Indexer.java | 142 -
.../tools/gnu/classpath/tools/jar/Lister.java | 112 -
.../tools/gnu/classpath/tools/jar/Main.java | 293 --
.../tools/gnu/classpath/tools/jar/Messages.java | 67 -
.../tools/gnu/classpath/tools/jar/Updater.java | 98 -
.../tools/gnu/classpath/tools/jar/WorkSet.java | 83 -
.../gnu/classpath/tools/jarsigner/HashUtils.java | 124 -
.../gnu/classpath/tools/jarsigner/JarSigner.java | 173 -
.../gnu/classpath/tools/jarsigner/JarVerifier.java | 343 --
.../tools/gnu/classpath/tools/jarsigner/Main.java | 689 ----
.../gnu/classpath/tools/jarsigner/Messages.java | 119 -
.../gnu/classpath/tools/jarsigner/SFHelper.java | 491 ---
.../gnu/classpath/tools/java2xhtml/Java2xhtml.java | 1354 -------
.../gnu/classpath/tools/javah/ClassWrapper.java | 376 --
.../classpath/tools/javah/CniIncludePrinter.java | 80 -
.../gnu/classpath/tools/javah/CniPrintStream.java | 274 --
.../gnu/classpath/tools/javah/CniStubPrinter.java | 129 -
.../gnu/classpath/tools/javah/FieldHelper.java | 99 -
.../tools/gnu/classpath/tools/javah/GcjhMain.java | 153 -
.../tools/gnu/classpath/tools/javah/JniHelper.java | 122 -
.../classpath/tools/javah/JniIncludePrinter.java | 170 -
.../gnu/classpath/tools/javah/JniPrintStream.java | 115 -
.../gnu/classpath/tools/javah/JniStubPrinter.java | 109 -
.../tools/gnu/classpath/tools/javah/Keywords.java | 172 -
.../tools/gnu/classpath/tools/javah/Main.java | 494 ---
.../gnu/classpath/tools/javah/MethodHelper.java | 122 -
.../gnu/classpath/tools/javah/PackageWrapper.java | 54 -
.../gnu/classpath/tools/javah/PathOptionGroup.java | 147 -
.../tools/gnu/classpath/tools/javah/Printer.java | 139 -
.../tools/gnu/classpath/tools/javah/Text.java | 60 -
.../gnu/classpath/tools/keytool/CACertCmd.java | 313 --
.../gnu/classpath/tools/keytool/CertReqCmd.java | 475 ---
.../tools/gnu/classpath/tools/keytool/Command.java | 1228 -------
.../gnu/classpath/tools/keytool/DeleteCmd.java | 280 --
.../gnu/classpath/tools/keytool/ExportCmd.java | 328 --
.../gnu/classpath/tools/keytool/GenKeyCmd.java | 602 ---
.../gnu/classpath/tools/keytool/IdentityDBCmd.java | 232 --
.../gnu/classpath/tools/keytool/ImportCmd.java | 930 -----
.../gnu/classpath/tools/keytool/KeyCloneCmd.java | 407 --
.../gnu/classpath/tools/keytool/KeyPasswdCmd.java | 395 --
.../tools/gnu/classpath/tools/keytool/ListCmd.java | 432 ---
.../tools/gnu/classpath/tools/keytool/Main.java | 329 --
.../gnu/classpath/tools/keytool/Messages.java | 118 -
.../gnu/classpath/tools/keytool/PrintCertCmd.java | 143 -
.../gnu/classpath/tools/keytool/SelfCertCmd.java | 440 ---
.../classpath/tools/keytool/StorePasswdCmd.java | 318 --
.../gnu/classpath/tools/native2ascii/Messages.java | 67 -
.../classpath/tools/native2ascii/Native2ASCII.java | 194 -
.../tools/gnu/classpath/tools/orbd/Main.java | 226 --
.../tools/gnu/classpath/tools/orbd/Messages.java | 67 -
.../classpath/tools/orbd/PersistentContext.java | 152 -
.../classpath/tools/orbd/PersistentContextMap.java | 87 -
.../gnu/classpath/tools/orbd/PersistentMap.java | 454 ---
.../tools/rmic/AbstractMethodGenerator.java | 53 -
.../classpath/tools/rmic/ClassRmicCompiler.java | 1824 ---------
.../gnu/classpath/tools/rmic/CompilationError.java | 69 -
.../tools/gnu/classpath/tools/rmic/Generator.java | 145 -
.../tools/gnu/classpath/tools/rmic/GiopIo.java | 129 -
.../tools/gnu/classpath/tools/rmic/HashFinder.java | 100 -
.../tools/gnu/classpath/tools/rmic/Main.java | 293 --
.../tools/gnu/classpath/tools/rmic/Messages.java | 67 -
.../gnu/classpath/tools/rmic/MethodGenerator.java | 302 --
.../gnu/classpath/tools/rmic/RMICException.java | 70 -
.../classpath/tools/rmic/RmiMethodGenerator.java | 297 --
.../gnu/classpath/tools/rmic/RmicBackend.java | 48 -
.../tools/rmic/SourceGiopRmicCompiler.java | 696 ----
.../classpath/tools/rmic/SourceRmicCompiler.java | 189 -
.../tools/gnu/classpath/tools/rmic/Variables.java | 153 -
.../gnu/classpath/tools/rmic/WrapUnWrapper.java | 99 -
.../classpath/tools/rmid/ActivationSystemImpl.java | 243 --
.../tools/rmid/ActivationSystemImpl_Stub.java | 556 ---
.../tools/gnu/classpath/tools/rmid/Main.java | 258 --
.../tools/gnu/classpath/tools/rmid/Messages.java | 67 -
.../tools/rmid/PersistentBidiHashTable.java | 269 --
.../gnu/classpath/tools/rmiregistry/Main.java | 232 --
.../gnu/classpath/tools/rmiregistry/Messages.java | 67 -
.../tools/rmiregistry/PersistentHashTable.java | 262 --
.../classpath/tools/rmiregistry/RegistryImpl.java | 138 -
.../tools/rmiregistry/RegistryImpl_Skel.java | 278 --
.../tools/rmiregistry/RegistryImpl_Stub.java | 263 --
.../gnu/classpath/tools/serialver/Messages.java | 68 -
.../gnu/classpath/tools/serialver/SerialVer.java | 179 -
.../gnu/classpath/tools/taglets/AuthorTaglet.java | 293 --
.../gnu/classpath/tools/taglets/CodeTaglet.java | 101 -
.../classpath/tools/taglets/CopyrightTaglet.java | 123 -
.../classpath/tools/taglets/DeprecatedTaglet.java | 132 -
.../gnu/classpath/tools/taglets/GenericTaglet.java | 157 -
.../classpath/tools/taglets/GnuExtendedTaglet.java | 48 -
.../gnu/classpath/tools/taglets/SinceTaglet.java | 161 -
.../gnu/classpath/tools/taglets/TagletContext.java | 60 -
.../gnu/classpath/tools/taglets/ValueTaglet.java | 130 -
.../gnu/classpath/tools/taglets/VersionTaglet.java | 153 -
.../tools/gnu/classpath/tools/tnameserv/Main.java | 115 -
.../gnu/classpath/tools/tnameserv/Messages.java | 67 -
libjava/classpath/tools/gorbd.in | 48 -
libjava/classpath/tools/grmic.in | 48 -
libjava/classpath/tools/grmid.in | 48 -
libjava/classpath/tools/grmiregistry.in | 48 -
libjava/classpath/tools/gserialver.in | 48 -
libjava/classpath/tools/gtnameserv.in | 48 -
libjava/classpath/tools/jarsigner.in | 47 -
libjava/classpath/tools/keytool.in | 47 -
.../com/sun/tools/javac/messages.properties | 42 -
.../tools/appletviewer/messages.properties | 102 -
.../gnu/classpath/tools/common/messages.properties | 40 -
.../gnu/classpath/tools/getopt/messages.properties | 46 -
.../tools/gjdoc/doctranslets/gjdoc_common.xsl | 54 -
.../tools/gjdoc/doctranslets/html/about.xsl | 83 -
.../tools/gjdoc/doctranslets/html/allclasses.xsl | 63 -
.../tools/gjdoc/doctranslets/html/allpackages.xsl | 78 -
.../tools/gjdoc/doctranslets/html/alphaindex.xsl | 107 -
.../gjdoc/doctranslets/html/alphaindex_chunked.xsl | 112 -
.../gjdoc/doctranslets/html/classdoc-source.xsl | 61 -
.../gjdoc/doctranslets/html/classdoc-uses.xsl | 169 -
.../tools/gjdoc/doctranslets/html/classdoc.xsl | 1070 ------
.../tools/gjdoc/doctranslets/html/deprecated.xsl | 261 --
.../tools/gjdoc/doctranslets/html/descriptor.xsl | 58 -
.../tools/gjdoc/doctranslets/html/doctranslet.xsl | 115 -
.../tools/gjdoc/doctranslets/html/fulltree.xsl | 201 -
.../tools/gjdoc/doctranslets/html/gjdoc.xsl | 240 --
.../tools/gjdoc/doctranslets/html/help.xsl | 93 -
.../tools/gjdoc/doctranslets/html/html_common.xsl | 584 ---
.../tools/gjdoc/doctranslets/html/index.xsl | 66 -
.../gjdoc/doctranslets/html/index_noframes.xsl | 146 -
.../gjdoc/doctranslets/html/packageclasses.xsl | 90 -
.../tools/gjdoc/doctranslets/html/packagedoc.xsl | 153 -
.../doctranslets/html/res/default_help_en.html | 7 -
.../tools/gjdoc/doctranslets/html/res/gjdoc.js | 108 -
.../doctranslets/html/res/gjdochtml-clean.css | 382 --
.../doctranslets/html/res/gjdochtml-fixed.css | 286 --
.../doctranslets/html/res/gjdochtml-sclara.css | 266 --
.../gjdoc/doctranslets/html/res/gjdochtml.css | 29 -
.../gnu/classpath/tools/gjdoc/dtd/dbcentx.mod | 204 -
.../gnu/classpath/tools/gjdoc/dtd/ent/iso-amsa.ent | 98 -
.../gnu/classpath/tools/gjdoc/dtd/ent/iso-amsb.ent | 84 -
.../gnu/classpath/tools/gjdoc/dtd/ent/iso-amsc.ent | 52 -
.../gnu/classpath/tools/gjdoc/dtd/ent/iso-amsn.ent | 101 -
.../gnu/classpath/tools/gjdoc/dtd/ent/iso-amso.ent | 68 -
.../gnu/classpath/tools/gjdoc/dtd/ent/iso-amsr.ent | 126 -
.../gnu/classpath/tools/gjdoc/dtd/ent/iso-box.ent | 82 -
.../gnu/classpath/tools/gjdoc/dtd/ent/iso-cyr1.ent | 109 -
.../gnu/classpath/tools/gjdoc/dtd/ent/iso-cyr2.ent | 68 -
.../gnu/classpath/tools/gjdoc/dtd/ent/iso-dia.ent | 56 -
.../gnu/classpath/tools/gjdoc/dtd/ent/iso-grk1.ent | 91 -
.../gnu/classpath/tools/gjdoc/dtd/ent/iso-grk2.ent | 62 -
.../gnu/classpath/tools/gjdoc/dtd/ent/iso-grk3.ent | 85 -
.../gnu/classpath/tools/gjdoc/dtd/ent/iso-grk4.ent | 85 -
.../gnu/classpath/tools/gjdoc/dtd/ent/iso-lat1.ent | 104 -
.../gnu/classpath/tools/gjdoc/dtd/ent/iso-lat2.ent | 163 -
.../gnu/classpath/tools/gjdoc/dtd/ent/iso-num.ent | 118 -
.../gnu/classpath/tools/gjdoc/dtd/ent/iso-pub.ent | 127 -
.../gnu/classpath/tools/gjdoc/dtd/ent/iso-tech.ent | 104 -
.../classpath/tools/gjdoc/dtd/gjdoc-alphaindex.dtd | 35 -
.../gnu/classpath/tools/gjdoc/dtd/gjdoc.dtd | 35 -
.../tools/gjdoc/htmldoclet/HtmlDoclet.properties | 32 -
.../gnu/classpath/tools/gjdoc/htmldoclet/gjdoc.js | 115 -
.../gjdoc/htmldoclet/gjdochtml-clean-color1.css | 80 -
.../gjdoc/htmldoclet/gjdochtml-clean-layout.css | 460 ---
.../tools/gjdoc/htmldoclet/gjdochtml-vanilla.css | 21 -
.../classpath/tools/gjdoc/htmldoclet/help.xhtml | 25 -
.../classpath/tools/gjdoc/htmldoclet/inherit.png | Bin 199 -> 0 bytes
.../tools/gjdoc/htmldoclet/xhtml11-target10.dtd | 54 -
.../tools/gjdoc/java.lang-classes-1.2.txt | 78 -
.../tools/gjdoc/java.lang-classes-1.3.txt | 79 -
.../tools/gjdoc/java.lang-classes-1.4.txt | 82 -
.../tools/gjdoc/java.lang-classes-1.5.txt | 90 -
.../classpath/tools/gjdoc/rng/gjdoc-classdoc.rng | 649 ----
.../gnu/classpath/tools/gjdoc/rng/gjdoc-common.rng | 264 --
.../gnu/classpath/tools/gjdoc/rng/gjdoc-index.rng | 176 -
.../gnu/classpath/tools/jar/messages.properties | 72 -
.../classpath/tools/jarsigner/messages.properties | 126 -
.../classpath/tools/keytool/messages.properties | 570 ---
.../tools/native2ascii/messages.properties | 44 -
.../gnu/classpath/tools/orbd/messages.properties | 46 -
.../gnu/classpath/tools/rmic/messages.properties | 61 -
.../gnu/classpath/tools/rmic/templates/ImplTie.jav | 152 -
.../gnu/classpath/tools/rmic/templates/Stub.jav | 47 -
.../classpath/tools/rmic/templates/StubMethod.jav | 33 -
.../tools/rmic/templates/StubMethodVoid.jav | 32 -
.../gnu/classpath/tools/rmic/templates/Stub_12.jav | 62 -
.../tools/rmic/templates/Stub_12Method.jav | 26 -
.../tools/rmic/templates/Stub_12MethodVoid.jav | 25 -
.../gnu/classpath/tools/rmic/templates/Tie.jav | 184 -
.../classpath/tools/rmic/templates/TieMethod.jav | 11 -
.../tools/rmic/templates/TieMethodVoid.jav | 9 -
.../gnu/classpath/tools/rmid/messages.properties | 50 -
.../tools/rmiregistry/messages.properties | 48 -
.../classpath/tools/serialver/messages.properties | 44 -
.../classpath/tools/tnameserv/messages.properties | 43 -
.../resource/sun/rmi/rmic/messages.properties | 38 -
libjava/classpath/tools/sun/rmi/rmic/Main.java | 60 -
libjava/classpath/tools/sun/rmi/rmic/Messages.java | 67 -
libjava/classpath/tools/toolwrapper.c | 264 --
1260 files changed, 110936 deletions(-)
delete mode 100644 libjava/classpath/tools/.cvsignore
delete mode 100755 libjava/classpath/tools/Makefile.am
delete mode 100644 libjava/classpath/tools/Makefile.in
delete mode 100644 libjava/classpath/tools/README
delete mode 100644 libjava/classpath/tools/appletviewer.in
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/AnnotationVisitor.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/AnnotationWriter.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/Attribute.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/ByteVector.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/ClassAdapter.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/ClassReader.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/ClassVisitor.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/ClassWriter.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/Edge.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/FieldVisitor.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/FieldWriter.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/Handler.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/Item.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/Label.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/MethodAdapter.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/MethodVisitor.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/MethodWriter.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/Opcodes.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/Type.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/attrs/StackMapAttribute.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/attrs/StackMapFrame.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/attrs/StackMapTableAttribute.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/attrs/StackMapType.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/commons/AdviceAdapter.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/commons/EmptyVisitor.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/commons/GeneratorAdapter.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/commons/LocalVariablesSorter.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/commons/Method.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/commons/SerialVersionUIDAdder$Item.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/commons/SerialVersionUIDAdder.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/commons/StaticInitMerger.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/commons/TableSwitchGenerator.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/optimizer/AnnotationConstantsCollector.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/optimizer/ClassConstantsCollector.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/optimizer/ClassOptimizer.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/optimizer/Constant.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/optimizer/ConstantPool.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/optimizer/FieldConstantsCollector.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/optimizer/JarOptimizer.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/optimizer/MethodConstantsCollector.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/optimizer/MethodOptimizer.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/optimizer/NameMapping.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/optimizer/Shrinker$ConstantComparator.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/optimizer/Shrinker.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/signature/SignatureReader.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/signature/SignatureVisitor.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/signature/SignatureWriter.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/tree/AbstractInsnNode.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/tree/AnnotationNode.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/tree/ClassNode.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/tree/FieldInsnNode.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/tree/FieldNode.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/tree/IincInsnNode.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/tree/InnerClassNode.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/tree/InsnNode.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/tree/IntInsnNode.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/tree/JumpInsnNode.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/tree/LabelNode.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/tree/LdcInsnNode.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/tree/LineNumberNode.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/tree/LocalVariableNode.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/tree/LookupSwitchInsnNode.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/tree/MemberNode.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/tree/MethodInsnNode.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/tree/MethodNode$1.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/tree/MethodNode.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/tree/MultiANewArrayInsnNode.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/tree/TableSwitchInsnNode.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/tree/TryCatchBlockNode.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/tree/TypeInsnNode.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/tree/VarInsnNode.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/tree/analysis/Analyzer.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/tree/analysis/AnalyzerException.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/tree/analysis/BasicInterpreter.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/tree/analysis/BasicValue.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/tree/analysis/BasicVerifier.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/tree/analysis/DataflowInterpreter.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/tree/analysis/DataflowValue.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/tree/analysis/Frame.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/tree/analysis/IntMap.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/tree/analysis/Interpreter.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/tree/analysis/SimpleVerifier.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/tree/analysis/SmallSet.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/tree/analysis/Subroutine.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/tree/analysis/Value.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/util/ASMifierAbstractVisitor.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/util/ASMifierAnnotationVisitor.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/util/ASMifierClassVisitor.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/util/ASMifierFieldVisitor.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/util/ASMifierMethodVisitor.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/util/AbstractVisitor.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/util/CheckAnnotationAdapter.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/util/CheckClassAdapter.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/util/CheckFieldAdapter.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/util/CheckMethodAdapter.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/util/TraceAbstractVisitor.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/util/TraceAnnotationVisitor.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/util/TraceClassVisitor.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/util/TraceFieldVisitor.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/util/TraceMethodVisitor.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/util/TraceSignatureVisitor.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/util/attrs/ASMStackMapAttribute.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/util/attrs/ASMStackMapTableAttribute.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/util/attrs/ASMifiable.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/util/attrs/Traceable.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$AnnotationDefaultRule.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$AnnotationParameterRule.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$AnnotationRule.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$AnnotationValueAnnotationRule.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$AnnotationValueArrayRule.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$AnnotationValueEnumRule.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$AnnotationValueRule.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$ClassRule.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$ExceptionRule.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$ExceptionsRule.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$FieldRule.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$InnerClassRule.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$InterfaceRule.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$InterfacesRule.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$LabelRule.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$LineNumberRule.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$LocalVarRule.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$LookupSwitchLabelRule.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$LookupSwitchRule.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$MaxRule.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$MethodRule.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$Opcode.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$OpcodeGroup.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$OpcodesRule.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$OuterClassRule.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$Rule.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$RuleSet.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$SourceRule.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$TableSwitchLabelRule.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$TableSwitchRule.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$TryCatchRule.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/xml/Processor$ASMContentHandlerFactory.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/xml/Processor$ContentHandlerFactory.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/xml/Processor$EntryElement.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/xml/Processor$InputSlicingHandler.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/xml/Processor$OutputSlicingHandler.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/xml/Processor$ProtectedInputStream.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/xml/Processor$SAXWriter.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/xml/Processor$SAXWriterFactory.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/xml/Processor$SingleDocElement.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/xml/Processor$SubdocumentHandlerFactory.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/xml/Processor$TransformerHandlerFactory.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/xml/Processor$ZipEntryElement.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/xml/Processor.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/xml/SAXAdapter.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/xml/SAXAnnotationAdapter.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/xml/SAXClassAdapter.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/xml/SAXCodeAdapter.class
delete mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/xml/SAXFieldAdapter.class
delete mode 100644 libjava/classpath/tools/classes/com/sun/javadoc/ClassDoc.class
delete mode 100644 libjava/classpath/tools/classes/com/sun/javadoc/ConstructorDoc.class
delete mode 100644 libjava/classpath/tools/classes/com/sun/javadoc/Doc.class
delete mode 100644 libjava/classpath/tools/classes/com/sun/javadoc/DocErrorReporter.class
delete mode 100644 libjava/classpath/tools/classes/com/sun/javadoc/Doclet.class
delete mode 100644 libjava/classpath/tools/classes/com/sun/javadoc/ExecutableMemberDoc.class
delete mode 100644 libjava/classpath/tools/classes/com/sun/javadoc/FieldDoc.class
delete mode 100644 libjava/classpath/tools/classes/com/sun/javadoc/MemberDoc.class
delete mode 100644 libjava/classpath/tools/classes/com/sun/javadoc/MethodDoc.class
delete mode 100644 libjava/classpath/tools/classes/com/sun/javadoc/PackageDoc.class
delete mode 100644 libjava/classpath/tools/classes/com/sun/javadoc/ParamTag.class
delete mode 100644 libjava/classpath/tools/classes/com/sun/javadoc/Parameter.class
delete mode 100644 libjava/classpath/tools/classes/com/sun/javadoc/ProgramElementDoc.class
delete mode 100644 libjava/classpath/tools/classes/com/sun/javadoc/RootDoc.class
delete mode 100644 libjava/classpath/tools/classes/com/sun/javadoc/SeeTag.class
delete mode 100644 libjava/classpath/tools/classes/com/sun/javadoc/SerialFieldTag.class
delete mode 100644 libjava/classpath/tools/classes/com/sun/javadoc/SourcePosition.class
delete mode 100644 libjava/classpath/tools/classes/com/sun/javadoc/Tag.class
delete mode 100644 libjava/classpath/tools/classes/com/sun/javadoc/ThrowsTag.class
delete mode 100644 libjava/classpath/tools/classes/com/sun/javadoc/Type.class
delete mode 100644 libjava/classpath/tools/classes/com/sun/javadoc/TypeVariable.class
delete mode 100644 libjava/classpath/tools/classes/com/sun/tools/doclets/Taglet.class
delete mode 100644 libjava/classpath/tools/classes/com/sun/tools/javac/Main.class
delete mode 100644 libjava/classpath/tools/classes/com/sun/tools/javac/Messages.class
delete mode 100644 libjava/classpath/tools/classes/com/sun/tools/javadoc/Main.class
delete mode 100644 libjava/classpath/tools/classes/com/sun/tools/javah/Main.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/FileSystemClassLoader$FileStreamInfo.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/FileSystemClassLoader$JarStreamInfo.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/FileSystemClassLoader$StreamInfo.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/FileSystemClassLoader.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/IOToolkit.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/MalformedInputEvent.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/MalformedInputListener.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/NotifyingInputStreamReader.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/StringToolkit.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/AppletClassLoader.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/AppletSecurityManager.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/AppletTag.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/CommonAppletContext.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/CommonAppletStub.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/ErrorApplet.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$1.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$10.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$2.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$3.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$4.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$5.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$6.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$7.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$8.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$9.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Messages.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/PluginAppletContext.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/PluginAppletViewer.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/PluginAppletWindow.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/StandaloneAppletContext.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/StandaloneAppletViewer.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/StandaloneAppletWindow$1.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/StandaloneAppletWindow.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/TagParser.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/common/CallbackUtil.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/common/ClasspathToolParser$1.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/common/ClasspathToolParser$2.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/common/ClasspathToolParser$AtFileArgumentCallback.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/common/ClasspathToolParser.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/common/Messages.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/common/Persistent$ExitTask.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/common/Persistent.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/common/ProviderUtil$1.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/common/ProviderUtil$2.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/common/ProviderUtil.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/common/SecurityProviderInfo.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet$DocletOptionGroup.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet$DocletOptionTag.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet$IndexKey.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet$InterfaceRelation.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet$UsageType.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/doclets/DocletConfigurationException.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/doclets/DocletOption.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/doclets/DocletOptionColonSeparated.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/doclets/DocletOptionFile.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/doclets/DocletOptionFlag.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/doclets/DocletOptionPackageWildcard.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/doclets/DocletOptionString.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/doclets/InlineTagRenderer.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/doclets/InvalidPackageWildcardException.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/doclets/PackageGroup.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/doclets/PackageMatcher.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/doclets/StandardTaglet.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/doclets/TagletPrinter.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/doclets/debugdoclet/DebugDoclet.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/CssClass.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/ExternalDocSet.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet$1.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet$2.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet$3.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet$TreeNode.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlPage.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlTagletContext.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/Driver$1.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/Driver$NullErrorReporter.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/Driver$UsageType.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/Driver.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/Driver1_4.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/HtmlRepairer$TagInfo.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/HtmlRepairer.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/TargetContext.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTranslet$DocErrorReporterOutputStream.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTranslet.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTransletConfigurationException.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTransletException.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTransletOptions.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/doctranslet/JarClassLoader.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/doctranslet/OutputFileInfo.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/getopt/FileArgumentCallback.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/getopt/Messages.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/getopt/Option.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/getopt/OptionException.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/getopt/OptionGroup.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/getopt/Parser$1.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/getopt/Parser$2.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/getopt/Parser$3.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/getopt/Parser.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/AbstractTagImpl.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ArrayCharacterIterator.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/BlockSourceComponent.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/BracketClose.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ClassComponent.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ClassDocImpl.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ClassDocProxy.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ClassDocReflectedImpl.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/CommentComponent.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ConstructorDocImpl.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Debug.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/DirectoryTree$FileNode.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/DirectoryTree.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/DocImpl.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/EmptyStatementComponent.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ErrorReporter.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ExecutableMemberDocImpl.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/FieldComponent.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/FieldDocImpl.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/FunctionComponent.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/GjdocPackageDoc.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/GjdocRootDoc.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/IgnoredFileParseException.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ImportComponent.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/InheritDocTagImpl.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/JavadocWrapper.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/LinkTagImpl.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$1.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$10.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$11.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$12.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$13.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$14.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$15.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$16.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$17.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$18.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$19.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$2.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$20.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$21.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$22.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$23.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$24.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$25.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$3.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$4.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$5.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$6.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$7.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$8.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$9.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$OptionProcessor.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/MemberDocImpl.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/MethodDocImpl.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/PackageComponent.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/PackageDocImpl.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ParamTagImpl.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ParameterImpl.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ParseException.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Parser$1.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Parser$Context.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Parser.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ProgramElementDocImpl.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl$ResolvedImport.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl$ResolvedImportClassFile.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl$ResolvedImportNotFound.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl$ResolvedImportPackageFile.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl$ResolvedImportReflectionClass.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl$ResolvedImportReflectionPackage.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl$ScheduledClass.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/SeeTagImpl.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/SerialFieldTagImpl.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/SlashSlashCommentComponent.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/SourceComponent.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/SourcePositionImpl.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/StaticBlockComponent.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TagContainer.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TagImpl.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TemporaryStore.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TextTagImpl.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ThrowsTagImpl.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Timer.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TimerDoclet$1.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TimerDoclet.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TypeImpl.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TypeVariableImpl.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ValueTagImpl.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Whitespace.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/WritableType.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/AdditionExpression.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/AndExpression.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BinaryBitwiseExpression.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BinaryComputationExpression.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BinaryEqualityExpression.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BinaryExpression.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BinaryLogicalExpression.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BinaryRelationExpression.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BinaryShiftExpression.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BitShiftRightExpression.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/CircularExpressionException.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConditionalExpression.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantBoolean.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantByte.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantChar.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantDouble.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantExpression.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantFloat.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantInteger.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantLong.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantNull.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantShort.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantString.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/Context.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/DivisionExpression.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/EqualExpression.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/Evaluator.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/EvaluatorEnvironment.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ExclusiveOrExpression.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/Expression.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/GreaterThanExpression.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/GreaterThanOrEqualExpression.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/IdentifierExpression.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/IllegalExpressionException.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/InclusiveOrExpression.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/JavaLexer.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/JavaRecognizer.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/JavaTokenTypes.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/LessThanExpression.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/LessThanOrEqualExpression.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/LogicalAndExpression.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/LogicalNotExpression.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/LogicalOrExpression.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ModuloExpression.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/MultiplicationExpression.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/NegateExpression.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/NotEqualExpression.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/NotExpression.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ShiftLeftExpression.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ShiftRightExpression.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/SubtractionExpression.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/Type.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/TypeCastExpression.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/UnaryExpression.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/UnknownIdentifierException.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/jar/Action.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/jar/Creator.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/jar/Entry.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/jar/Extractor.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/jar/Indexer.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/jar/Lister.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main$1.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main$2.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main$3.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main$4.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main$5.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main$6.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main$7.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main$HandleFile.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main$JarParser.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main$ModeOption.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/jar/Messages.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/jar/Updater.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/jar/WorkSet.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/jarsigner/HashUtils.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/jarsigner/JarSigner.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/jarsigner/JarVerifier.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/jarsigner/Main$1.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/jarsigner/Main$10.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/jarsigner/Main$11.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/jarsigner/Main$12.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/jarsigner/Main$2.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/jarsigner/Main$3.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/jarsigner/Main$4.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/jarsigner/Main$5.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/jarsigner/Main$6.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/jarsigner/Main$7.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/jarsigner/Main$8.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/jarsigner/Main$9.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/jarsigner/Main$ToolParser.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/jarsigner/Main$ToolParserCallback.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/jarsigner/Main.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/jarsigner/Messages.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/jarsigner/SFHelper.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/java2xhtml/Java2xhtml$State.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/java2xhtml/Java2xhtml.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/javah/ClassWrapper.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/javah/CniIncludePrinter.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/javah/CniPrintStream.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/javah/CniStubPrinter.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/javah/FieldHelper.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$1.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$2.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$3.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$4.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$5.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$6.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$7.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$8.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$9.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/javah/JniHelper.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/javah/JniIncludePrinter.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/javah/JniPrintStream.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/javah/JniStubPrinter.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/javah/Keywords.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$1.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$10.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$2.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$3.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$4.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$5.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$6.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$7.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$8.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$9.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/javah/MethodHelper.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/javah/PackageWrapper.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/javah/PathOptionGroup$1.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/javah/PathOptionGroup$2.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/javah/PathOptionGroup$3.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/javah/PathOptionGroup$4.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/javah/PathOptionGroup$5.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/javah/PathOptionGroup$6.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/javah/PathOptionGroup.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/javah/Printer.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/javah/Text.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/CACertCmd$1.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/CACertCmd$2.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/CACertCmd$3.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/CACertCmd$4.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/CACertCmd$5.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/CACertCmd$6.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/CACertCmd.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/CertReqCmd$1.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/CertReqCmd$10.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/CertReqCmd$2.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/CertReqCmd$3.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/CertReqCmd$4.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/CertReqCmd$5.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/CertReqCmd$6.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/CertReqCmd$7.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/CertReqCmd$8.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/CertReqCmd$9.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/CertReqCmd.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/Command$ShutdownHook.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/Command.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/DeleteCmd$1.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/DeleteCmd$2.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/DeleteCmd$3.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/DeleteCmd$4.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/DeleteCmd$5.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/DeleteCmd$6.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/DeleteCmd.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ExportCmd$1.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ExportCmd$2.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ExportCmd$3.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ExportCmd$4.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ExportCmd$5.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ExportCmd$6.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ExportCmd$7.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ExportCmd$8.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ExportCmd.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/GenKeyCmd$1.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/GenKeyCmd$10.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/GenKeyCmd$11.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/GenKeyCmd$12.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/GenKeyCmd$2.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/GenKeyCmd$3.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/GenKeyCmd$4.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/GenKeyCmd$5.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/GenKeyCmd$6.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/GenKeyCmd$7.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/GenKeyCmd$8.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/GenKeyCmd$9.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/GenKeyCmd.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/IdentityDBCmd$1.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/IdentityDBCmd$2.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/IdentityDBCmd$3.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/IdentityDBCmd$4.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/IdentityDBCmd$5.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/IdentityDBCmd$6.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/IdentityDBCmd.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ImportCmd$1.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ImportCmd$10.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ImportCmd$2.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ImportCmd$3.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ImportCmd$4.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ImportCmd$5.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ImportCmd$6.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ImportCmd$7.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ImportCmd$8.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ImportCmd$9.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ImportCmd.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/KeyCloneCmd$1.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/KeyCloneCmd$2.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/KeyCloneCmd$3.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/KeyCloneCmd$4.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/KeyCloneCmd$5.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/KeyCloneCmd$6.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/KeyCloneCmd$7.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/KeyCloneCmd$8.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/KeyCloneCmd$9.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/KeyCloneCmd.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/KeyPasswdCmd$1.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/KeyPasswdCmd$2.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/KeyPasswdCmd$3.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/KeyPasswdCmd$4.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/KeyPasswdCmd$5.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/KeyPasswdCmd$6.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/KeyPasswdCmd$7.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/KeyPasswdCmd$8.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/KeyPasswdCmd.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ListCmd$1.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ListCmd$2.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ListCmd$3.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ListCmd$4.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ListCmd$5.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ListCmd$6.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ListCmd$7.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ListCmd.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/Main$NoParseOption.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/Main$ShutdownHook.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/Main.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/Messages.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/PrintCertCmd$1.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/PrintCertCmd$2.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/PrintCertCmd.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/SelfCertCmd$1.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/SelfCertCmd$10.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/SelfCertCmd$2.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/SelfCertCmd$3.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/SelfCertCmd$4.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/SelfCertCmd$5.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/SelfCertCmd$6.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/SelfCertCmd$7.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/SelfCertCmd$8.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/SelfCertCmd$9.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/SelfCertCmd.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/StorePasswdCmd$1.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/StorePasswdCmd$2.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/StorePasswdCmd$3.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/StorePasswdCmd$4.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/StorePasswdCmd$5.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/StorePasswdCmd$6.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/StorePasswdCmd.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/native2ascii/Messages.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/native2ascii/Native2ASCII$1.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/native2ascii/Native2ASCII$2.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/native2ascii/Native2ASCII$3.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/native2ascii/Native2ASCII$HandleFile.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/native2ascii/Native2ASCII.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main$1.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main$2.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main$3.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main$4.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main$5.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Messages.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/orbd/PersistentContext.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/orbd/PersistentContextMap.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/orbd/PersistentMap$Entry.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/orbd/PersistentMap.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/rmic/AbstractMethodGenerator.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/rmic/ClassRmicCompiler$MethodRef.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/rmic/ClassRmicCompiler.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/rmic/CompilationError.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Generator.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/rmic/GiopIo.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/rmic/HashFinder.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$1.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$10.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$11.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$12.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$13.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$14.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$15.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$16.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$17.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$18.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$2.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$3.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$4.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$5.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$6.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$7.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$8.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$9.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Messages.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/rmic/MethodGenerator.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/rmic/RMICException.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/rmic/RmiMethodGenerator.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/rmic/RmicBackend.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/rmic/SourceGiopRmicCompiler.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/rmic/SourceRmicCompiler.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Variables.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/rmic/WrapUnWrapper.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/rmid/ActivationSystemImpl.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/rmid/ActivationSystemImpl_Stub.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/rmid/Main$1.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/rmid/Main$2.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/rmid/Main$3.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/rmid/Main$4.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/rmid/Main$5.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/rmid/Main$6.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/rmid/Main.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/rmid/Messages.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/rmid/PersistentBidiHashTable$AdaptedReader.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/rmid/PersistentBidiHashTable$WriteToDiskTask.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/rmid/PersistentBidiHashTable.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/rmiregistry/Main$1.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/rmiregistry/Main$2.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/rmiregistry/Main$3.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/rmiregistry/Main$4.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/rmiregistry/Main$5.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/rmiregistry/Main$6.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/rmiregistry/Main.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/rmiregistry/Messages.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/rmiregistry/PersistentHashTable$WriteToDiskTask.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/rmiregistry/PersistentHashTable.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/rmiregistry/RegistryImpl.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/rmiregistry/RegistryImpl_Skel.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/rmiregistry/RegistryImpl_Stub.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/serialver/Messages.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/serialver/SerialVer$1.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/serialver/SerialVer$2.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/serialver/SerialVer$3.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/serialver/SerialVer.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/taglets/AuthorTaglet$EmailReplacement.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/taglets/AuthorTaglet.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/taglets/CodeTaglet.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/taglets/CopyrightTaglet.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/taglets/DeprecatedTaglet.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/taglets/GenericTaglet.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/taglets/GnuExtendedTaglet.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/taglets/SinceTaglet.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/taglets/TagletContext.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/taglets/ValueTaglet.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/taglets/VersionTaglet.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/tnameserv/Main$1.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/tnameserv/Main$2.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/tnameserv/Main.class
delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/tnameserv/Messages.class
delete mode 100644 libjava/classpath/tools/classes/gnu/gcj/tools/gc_analyze/BlockMap$PtrMarks.class
delete mode 100644 libjava/classpath/tools/classes/gnu/gcj/tools/gc_analyze/BlockMap$SizeKind.class
delete mode 100644 libjava/classpath/tools/classes/gnu/gcj/tools/gc_analyze/BlockMap.class
delete mode 100644 libjava/classpath/tools/classes/gnu/gcj/tools/gc_analyze/BytePtr.class
delete mode 100644 libjava/classpath/tools/classes/gnu/gcj/tools/gc_analyze/ItemList.class
delete mode 100644 libjava/classpath/tools/classes/gnu/gcj/tools/gc_analyze/MemoryAnalyze$1$Info.class
delete mode 100644 libjava/classpath/tools/classes/gnu/gcj/tools/gc_analyze/MemoryAnalyze$1.class
delete mode 100644 libjava/classpath/tools/classes/gnu/gcj/tools/gc_analyze/MemoryAnalyze$2.class
delete mode 100644 libjava/classpath/tools/classes/gnu/gcj/tools/gc_analyze/MemoryAnalyze$3.class
delete mode 100644 libjava/classpath/tools/classes/gnu/gcj/tools/gc_analyze/MemoryAnalyze$4.class
delete mode 100644 libjava/classpath/tools/classes/gnu/gcj/tools/gc_analyze/MemoryAnalyze$OptionParser.class
delete mode 100644 libjava/classpath/tools/classes/gnu/gcj/tools/gc_analyze/MemoryAnalyze$SubstringComparator.class
delete mode 100644 libjava/classpath/tools/classes/gnu/gcj/tools/gc_analyze/MemoryAnalyze.class
delete mode 100644 libjava/classpath/tools/classes/gnu/gcj/tools/gc_analyze/MemoryMap$Range.class
delete mode 100644 libjava/classpath/tools/classes/gnu/gcj/tools/gc_analyze/MemoryMap$RangeComparator.class
delete mode 100644 libjava/classpath/tools/classes/gnu/gcj/tools/gc_analyze/MemoryMap.class
delete mode 100644 libjava/classpath/tools/classes/gnu/gcj/tools/gc_analyze/ObjectMap$ObjectItem.class
delete mode 100644 libjava/classpath/tools/classes/gnu/gcj/tools/gc_analyze/ObjectMap.class
delete mode 100644 libjava/classpath/tools/classes/gnu/gcj/tools/gc_analyze/SymbolLookup.class
delete mode 100644 libjava/classpath/tools/classes/gnu/gcj/tools/gc_analyze/SymbolTable.class
delete mode 100644 libjava/classpath/tools/classes/gnu/gcj/tools/gc_analyze/ToolPrefix.class
delete mode 100644 libjava/classpath/tools/classes/sun/rmi/rmic/Main.class
delete mode 100644 libjava/classpath/tools/classes/sun/rmi/rmic/Messages.class
delete mode 100644 libjava/classpath/tools/com/sun/javadoc/ClassDoc.java
delete mode 100644 libjava/classpath/tools/com/sun/javadoc/ConstructorDoc.java
delete mode 100644 libjava/classpath/tools/com/sun/javadoc/Doc.java
delete mode 100644 libjava/classpath/tools/com/sun/javadoc/DocErrorReporter.java
delete mode 100644 libjava/classpath/tools/com/sun/javadoc/Doclet.java
delete mode 100644 libjava/classpath/tools/com/sun/javadoc/ExecutableMemberDoc.java
delete mode 100644 libjava/classpath/tools/com/sun/javadoc/FieldDoc.java
delete mode 100644 libjava/classpath/tools/com/sun/javadoc/MemberDoc.java
delete mode 100644 libjava/classpath/tools/com/sun/javadoc/MethodDoc.java
delete mode 100644 libjava/classpath/tools/com/sun/javadoc/PackageDoc.java
delete mode 100644 libjava/classpath/tools/com/sun/javadoc/ParamTag.java
delete mode 100644 libjava/classpath/tools/com/sun/javadoc/Parameter.java
delete mode 100644 libjava/classpath/tools/com/sun/javadoc/ProgramElementDoc.java
delete mode 100644 libjava/classpath/tools/com/sun/javadoc/RootDoc.java
delete mode 100644 libjava/classpath/tools/com/sun/javadoc/SeeTag.java
delete mode 100644 libjava/classpath/tools/com/sun/javadoc/SerialFieldTag.java
delete mode 100644 libjava/classpath/tools/com/sun/javadoc/SourcePosition.java
delete mode 100644 libjava/classpath/tools/com/sun/javadoc/Tag.java
delete mode 100644 libjava/classpath/tools/com/sun/javadoc/ThrowsTag.java
delete mode 100644 libjava/classpath/tools/com/sun/javadoc/Type.java
delete mode 100644 libjava/classpath/tools/com/sun/javadoc/TypeVariable.java
delete mode 100644 libjava/classpath/tools/com/sun/tools/doclets/Taglet.java
delete mode 100644 libjava/classpath/tools/com/sun/tools/javac/Main.java
delete mode 100644 libjava/classpath/tools/com/sun/tools/javac/Messages.java
delete mode 100644 libjava/classpath/tools/com/sun/tools/javadoc/Main.java
delete mode 100644 libjava/classpath/tools/com/sun/tools/javah/Main.java
delete mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/AnnotationVisitor.java
delete mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/AnnotationWriter.java
delete mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/Attribute.java
delete mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/ByteVector.java
delete mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/ClassAdapter.java
delete mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/ClassReader.java
delete mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/ClassVisitor.java
delete mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/ClassWriter.java
delete mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/Edge.java
delete mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/FieldVisitor.java
delete mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/FieldWriter.java
delete mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/Handler.java
delete mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/Item.java
delete mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/Label.java
delete mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/MethodAdapter.java
delete mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/MethodVisitor.java
delete mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/MethodWriter.java
delete mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/Opcodes.java
delete mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/Type.java
delete mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/attrs/StackMapAttribute.java
delete mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/attrs/StackMapFrame.java
delete mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/attrs/StackMapTableAttribute.java
delete mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/attrs/StackMapType.java
delete mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/commons/AdviceAdapter.java
delete mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/commons/EmptyVisitor.java
delete mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/commons/GeneratorAdapter.java
delete mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/commons/LocalVariablesSorter.java
delete mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/commons/Method.java
delete mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/commons/SerialVersionUIDAdder.java
delete mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/commons/StaticInitMerger.java
delete mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/commons/TableSwitchGenerator.java
delete mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/optimizer/AnnotationConstantsCollector.java
delete mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/optimizer/ClassConstantsCollector.java
delete mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/optimizer/ClassOptimizer.java
delete mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/optimizer/Constant.java
delete mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/optimizer/ConstantPool.java
delete mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/optimizer/FieldConstantsCollector.java
delete mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/optimizer/JarOptimizer.java
delete mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/optimizer/MethodConstantsCollector.java
delete mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/optimizer/MethodOptimizer.java
delete mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/optimizer/NameMapping.java
delete mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/optimizer/Shrinker.java
delete mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/optimizer/shrink.properties
delete mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/signature/SignatureReader.java
delete mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/signature/SignatureVisitor.java
delete mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/signature/SignatureWriter.java
delete mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/tree/AbstractInsnNode.java
delete mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/tree/AnnotationNode.java
delete mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/tree/ClassNode.java
delete mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/tree/FieldInsnNode.java
delete mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/tree/FieldNode.java
delete mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/tree/IincInsnNode.java
delete mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/tree/InnerClassNode.java
delete mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/tree/InsnNode.java
delete mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/tree/IntInsnNode.java
delete mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/tree/JumpInsnNode.java
delete mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/tree/LabelNode.java
delete mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/tree/LdcInsnNode.java
delete mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/tree/LineNumberNode.java
delete mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/tree/LocalVariableNode.java
delete mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/tree/LookupSwitchInsnNode.java
delete mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/tree/MemberNode.java
delete mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/tree/MethodInsnNode.java
delete mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/tree/MethodNode.java
delete mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/tree/MultiANewArrayInsnNode.java
delete mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/tree/TableSwitchInsnNode.java
delete mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/tree/TryCatchBlockNode.java
delete mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/tree/TypeInsnNode.java
delete mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/tree/VarInsnNode.java
delete mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/Analyzer.java
delete mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/AnalyzerException.java
delete mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/BasicInterpreter.java
delete mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/BasicValue.java
delete mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/BasicVerifier.java
delete mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/DataflowInterpreter.java
delete mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/DataflowValue.java
delete mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/Frame.java
delete mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/IntMap.java
delete mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/Interpreter.java
delete mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/SimpleVerifier.java
delete mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/SmallSet.java
delete mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/Subroutine.java
delete mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/Value.java
delete mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/util/ASMifierAbstractVisitor.java
delete mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/util/ASMifierAnnotationVisitor.java
delete mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/util/ASMifierClassVisitor.java
delete mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/util/ASMifierFieldVisitor.java
delete mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/util/ASMifierMethodVisitor.java
delete mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/util/AbstractVisitor.java
delete mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/util/CheckAnnotationAdapter.java
delete mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/util/CheckClassAdapter.java
delete mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/util/CheckFieldAdapter.java
delete mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/util/CheckMethodAdapter.java
delete mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/util/TraceAbstractVisitor.java
delete mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/util/TraceAnnotationVisitor.java
delete mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/util/TraceClassVisitor.java
delete mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/util/TraceFieldVisitor.java
delete mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/util/TraceMethodVisitor.java
delete mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/util/TraceSignatureVisitor.java
delete mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/util/attrs/ASMStackMapAttribute.java
delete mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/util/attrs/ASMStackMapTableAttribute.java
delete mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/util/attrs/ASMifiable.java
delete mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/util/attrs/Traceable.java
delete mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/xml/ASMContentHandler.java
delete mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/xml/Processor.java
delete mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/xml/SAXAdapter.java
delete mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/xml/SAXAnnotationAdapter.java
delete mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/xml/SAXClassAdapter.java
delete mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/xml/SAXCodeAdapter.java
delete mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/xml/SAXFieldAdapter.java
delete mode 100644 libjava/classpath/tools/gappletviewer.in
delete mode 100644 libjava/classpath/tools/generated/gnu/classpath/tools/gjdoc/expr/JavaLexer.java
delete mode 100644 libjava/classpath/tools/generated/gnu/classpath/tools/gjdoc/expr/JavaLexer.smap
delete mode 100644 libjava/classpath/tools/generated/gnu/classpath/tools/gjdoc/expr/JavaRecognizer.java
delete mode 100644 libjava/classpath/tools/generated/gnu/classpath/tools/gjdoc/expr/JavaRecognizer.smap
delete mode 100644 libjava/classpath/tools/generated/gnu/classpath/tools/gjdoc/expr/JavaTokenTypes.java
delete mode 100644 libjava/classpath/tools/generated/gnu/classpath/tools/gjdoc/expr/JavaTokenTypes.txt
delete mode 100644 libjava/classpath/tools/gjar.in
delete mode 100644 libjava/classpath/tools/gjarsigner.in
delete mode 100644 libjava/classpath/tools/gjavah.in
delete mode 100644 libjava/classpath/tools/gjdoc.in
delete mode 100644 libjava/classpath/tools/gkeytool.in
delete mode 100644 libjava/classpath/tools/gnative2ascii.in
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/FileSystemClassLoader.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/IOToolkit.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/MalformedInputEvent.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/MalformedInputListener.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/NotifyingInputStreamReader.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/StringToolkit.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/appletviewer/AppletClassLoader.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/appletviewer/AppletSecurityManager.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/appletviewer/AppletTag.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/appletviewer/CommonAppletContext.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/appletviewer/CommonAppletStub.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/appletviewer/ErrorApplet.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/appletviewer/Main.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/appletviewer/Messages.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/appletviewer/PluginAppletContext.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/appletviewer/PluginAppletViewer.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/appletviewer/PluginAppletWindow.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/appletviewer/StandaloneAppletContext.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/appletviewer/StandaloneAppletViewer.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/appletviewer/StandaloneAppletWindow.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/appletviewer/TagParser.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/common/CallbackUtil.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/common/ClasspathToolParser.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/common/Messages.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/common/Persistent.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/common/ProviderUtil.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/common/SecurityProviderInfo.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/doclets/AbstractDoclet.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/doclets/DocletConfigurationException.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/doclets/DocletOption.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/doclets/DocletOptionColonSeparated.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/doclets/DocletOptionFile.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/doclets/DocletOptionFlag.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/doclets/DocletOptionPackageWildcard.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/doclets/DocletOptionString.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/doclets/InlineTagRenderer.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/doclets/InvalidPackageWildcardException.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/doclets/PackageGroup.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/doclets/PackageMatcher.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/doclets/StandardTaglet.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/doclets/TagletPrinter.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/doclets/debugdoclet/DebugDoclet.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/doclets/htmldoclet/CssClass.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/doclets/htmldoclet/ExternalDocSet.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/doclets/htmldoclet/HtmlPage.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/doclets/htmldoclet/HtmlTagletContext.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/Driver.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/Driver1_4.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/HtmlRepairer.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/TargetContext.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTranslet.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTransletConfigurationException.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTransletException.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTransletOptions.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/JarClassLoader.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/OutputFileInfo.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/getopt/FileArgumentCallback.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/getopt/Messages.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/getopt/Option.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/getopt/OptionException.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/getopt/OptionGroup.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/getopt/Parser.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/gjdoc/AbstractTagImpl.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/gjdoc/ArrayCharacterIterator.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/gjdoc/ClassDocImpl.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/gjdoc/ClassDocProxy.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/gjdoc/ClassDocReflectedImpl.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/gjdoc/ConstructorDocImpl.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/gjdoc/Debug.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/gjdoc/DirectoryTree.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/gjdoc/DocImpl.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/gjdoc/ErrorReporter.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/gjdoc/ExecutableMemberDocImpl.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/gjdoc/FieldDocImpl.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/gjdoc/GjdocPackageDoc.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/gjdoc/GjdocRootDoc.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/gjdoc/InheritDocTagImpl.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/gjdoc/JavadocWrapper.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/gjdoc/LinkTagImpl.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/gjdoc/Main.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/gjdoc/MemberDocImpl.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/gjdoc/MethodDocImpl.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/gjdoc/PackageDocImpl.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/gjdoc/ParamTagImpl.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/gjdoc/ParameterImpl.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/gjdoc/ParseException.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/gjdoc/Parser.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/gjdoc/ProgramElementDocImpl.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/gjdoc/RootDocImpl.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/gjdoc/SeeTagImpl.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/gjdoc/SerialFieldTagImpl.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/gjdoc/SourcePositionImpl.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/gjdoc/TagContainer.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/gjdoc/TagImpl.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/gjdoc/TemporaryStore.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/gjdoc/TextTagImpl.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/gjdoc/ThrowsTagImpl.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/gjdoc/Timer.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/gjdoc/TimerDoclet.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/gjdoc/TypeImpl.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/gjdoc/TypeVariableImpl.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/gjdoc/ValueTagImpl.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/gjdoc/WritableType.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/AdditionExpression.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/AndExpression.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/BinaryBitwiseExpression.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/BinaryComputationExpression.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/BinaryEqualityExpression.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/BinaryExpression.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/BinaryLogicalExpression.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/BinaryRelationExpression.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/BinaryShiftExpression.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/BitShiftRightExpression.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/CircularExpressionException.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConditionalExpression.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantBoolean.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantByte.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantChar.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantDouble.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantExpression.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantFloat.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantInteger.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantLong.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantNull.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantShort.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantString.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/Context.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/DivisionExpression.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/EqualExpression.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/Evaluator.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/EvaluatorEnvironment.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ExclusiveOrExpression.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/Expression.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/GreaterThanExpression.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/GreaterThanOrEqualExpression.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/IdentifierExpression.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/IllegalExpressionException.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/InclusiveOrExpression.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/LessThanExpression.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/LessThanOrEqualExpression.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/LogicalAndExpression.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/LogicalNotExpression.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/LogicalOrExpression.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ModuloExpression.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/MultiplicationExpression.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/NegateExpression.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/NotEqualExpression.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/NotExpression.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ShiftLeftExpression.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ShiftRightExpression.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/SubtractionExpression.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/Type.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/TypeCastExpression.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/UnaryExpression.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/UnknownIdentifierException.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/java-expression.g
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/jar/Action.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/jar/Creator.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/jar/Entry.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/jar/Extractor.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/jar/Indexer.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/jar/Lister.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/jar/Main.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/jar/Messages.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/jar/Updater.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/jar/WorkSet.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/jarsigner/HashUtils.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/jarsigner/JarSigner.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/jarsigner/JarVerifier.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/jarsigner/Main.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/jarsigner/Messages.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/jarsigner/SFHelper.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/java2xhtml/Java2xhtml.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/javah/ClassWrapper.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/javah/CniIncludePrinter.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/javah/CniPrintStream.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/javah/CniStubPrinter.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/javah/FieldHelper.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/javah/GcjhMain.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/javah/JniHelper.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/javah/JniIncludePrinter.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/javah/JniPrintStream.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/javah/JniStubPrinter.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/javah/Keywords.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/javah/Main.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/javah/MethodHelper.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/javah/PackageWrapper.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/javah/PathOptionGroup.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/javah/Printer.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/javah/Text.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/keytool/CACertCmd.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/keytool/CertReqCmd.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/keytool/Command.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/keytool/DeleteCmd.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/keytool/ExportCmd.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/keytool/GenKeyCmd.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/keytool/IdentityDBCmd.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/keytool/ImportCmd.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/keytool/KeyCloneCmd.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/keytool/KeyPasswdCmd.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/keytool/ListCmd.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/keytool/Main.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/keytool/Messages.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/keytool/PrintCertCmd.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/keytool/SelfCertCmd.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/keytool/StorePasswdCmd.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/native2ascii/Messages.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/native2ascii/Native2ASCII.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/orbd/Main.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/orbd/Messages.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/orbd/PersistentContext.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/orbd/PersistentContextMap.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/orbd/PersistentMap.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/rmic/AbstractMethodGenerator.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/rmic/ClassRmicCompiler.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/rmic/CompilationError.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/rmic/Generator.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/rmic/GiopIo.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/rmic/HashFinder.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/rmic/Main.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/rmic/Messages.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/rmic/MethodGenerator.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/rmic/RMICException.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/rmic/RmiMethodGenerator.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/rmic/RmicBackend.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/rmic/SourceGiopRmicCompiler.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/rmic/SourceRmicCompiler.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/rmic/Variables.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/rmic/WrapUnWrapper.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/rmid/ActivationSystemImpl.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/rmid/ActivationSystemImpl_Stub.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/rmid/Main.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/rmid/Messages.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/rmid/PersistentBidiHashTable.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/rmiregistry/Main.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/rmiregistry/Messages.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/rmiregistry/PersistentHashTable.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/rmiregistry/RegistryImpl.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/rmiregistry/RegistryImpl_Skel.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/rmiregistry/RegistryImpl_Stub.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/serialver/Messages.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/serialver/SerialVer.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/taglets/AuthorTaglet.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/taglets/CodeTaglet.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/taglets/CopyrightTaglet.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/taglets/DeprecatedTaglet.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/taglets/GenericTaglet.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/taglets/GnuExtendedTaglet.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/taglets/SinceTaglet.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/taglets/TagletContext.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/taglets/ValueTaglet.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/taglets/VersionTaglet.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/tnameserv/Main.java
delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/tnameserv/Messages.java
delete mode 100644 libjava/classpath/tools/gorbd.in
delete mode 100644 libjava/classpath/tools/grmic.in
delete mode 100644 libjava/classpath/tools/grmid.in
delete mode 100644 libjava/classpath/tools/grmiregistry.in
delete mode 100644 libjava/classpath/tools/gserialver.in
delete mode 100644 libjava/classpath/tools/gtnameserv.in
delete mode 100644 libjava/classpath/tools/jarsigner.in
delete mode 100644 libjava/classpath/tools/keytool.in
delete mode 100644 libjava/classpath/tools/resource/com/sun/tools/javac/messages.properties
delete mode 100644 libjava/classpath/tools/resource/gnu/classpath/tools/appletviewer/messages.properties
delete mode 100644 libjava/classpath/tools/resource/gnu/classpath/tools/common/messages.properties
delete mode 100644 libjava/classpath/tools/resource/gnu/classpath/tools/getopt/messages.properties
delete mode 100644 libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/gjdoc_common.xsl
delete mode 100644 libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/about.xsl
delete mode 100644 libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/allclasses.xsl
delete mode 100644 libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/allpackages.xsl
delete mode 100644 libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/alphaindex.xsl
delete mode 100644 libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/alphaindex_chunked.xsl
delete mode 100644 libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/classdoc-source.xsl
delete mode 100644 libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/classdoc-uses.xsl
delete mode 100644 libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/classdoc.xsl
delete mode 100644 libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/deprecated.xsl
delete mode 100644 libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/descriptor.xsl
delete mode 100644 libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/doctranslet.xsl
delete mode 100644 libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/fulltree.xsl
delete mode 100644 libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/gjdoc.xsl
delete mode 100644 libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/help.xsl
delete mode 100644 libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/html_common.xsl
delete mode 100644 libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/index.xsl
delete mode 100644 libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/index_noframes.xsl
delete mode 100644 libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/packageclasses.xsl
delete mode 100644 libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/packagedoc.xsl
delete mode 100644 libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/res/default_help_en.html
delete mode 100644 libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/res/gjdoc.js
delete mode 100644 libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/res/gjdochtml-clean.css
delete mode 100644 libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/res/gjdochtml-fixed.css
delete mode 100644 libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/res/gjdochtml-sclara.css
delete mode 100644 libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/res/gjdochtml.css
delete mode 100644 libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/dbcentx.mod
delete mode 100644 libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-amsa.ent
delete mode 100644 libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-amsb.ent
delete mode 100644 libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-amsc.ent
delete mode 100644 libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-amsn.ent
delete mode 100644 libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-amso.ent
delete mode 100644 libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-amsr.ent
delete mode 100644 libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-box.ent
delete mode 100644 libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-cyr1.ent
delete mode 100644 libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-cyr2.ent
delete mode 100644 libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-dia.ent
delete mode 100644 libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-grk1.ent
delete mode 100644 libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-grk2.ent
delete mode 100644 libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-grk3.ent
delete mode 100644 libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-grk4.ent
delete mode 100644 libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-lat1.ent
delete mode 100644 libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-lat2.ent
delete mode 100644 libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-num.ent
delete mode 100644 libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-pub.ent
delete mode 100644 libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-tech.ent
delete mode 100644 libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/gjdoc-alphaindex.dtd
delete mode 100644 libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/gjdoc.dtd
delete mode 100644 libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/htmldoclet/HtmlDoclet.properties
delete mode 100644 libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/htmldoclet/gjdoc.js
delete mode 100644 libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/htmldoclet/gjdochtml-clean-color1.css
delete mode 100644 libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/htmldoclet/gjdochtml-clean-layout.css
delete mode 100644 libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/htmldoclet/gjdochtml-vanilla.css
delete mode 100644 libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/htmldoclet/help.xhtml
delete mode 100644 libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/htmldoclet/inherit.png
delete mode 100644 libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/htmldoclet/xhtml11-target10.dtd
delete mode 100644 libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/java.lang-classes-1.2.txt
delete mode 100644 libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/java.lang-classes-1.3.txt
delete mode 100644 libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/java.lang-classes-1.4.txt
delete mode 100644 libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/java.lang-classes-1.5.txt
delete mode 100644 libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/rng/gjdoc-classdoc.rng
delete mode 100644 libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/rng/gjdoc-common.rng
delete mode 100644 libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/rng/gjdoc-index.rng
delete mode 100644 libjava/classpath/tools/resource/gnu/classpath/tools/jar/messages.properties
delete mode 100644 libjava/classpath/tools/resource/gnu/classpath/tools/jarsigner/messages.properties
delete mode 100644 libjava/classpath/tools/resource/gnu/classpath/tools/keytool/messages.properties
delete mode 100644 libjava/classpath/tools/resource/gnu/classpath/tools/native2ascii/messages.properties
delete mode 100644 libjava/classpath/tools/resource/gnu/classpath/tools/orbd/messages.properties
delete mode 100644 libjava/classpath/tools/resource/gnu/classpath/tools/rmic/messages.properties
delete mode 100644 libjava/classpath/tools/resource/gnu/classpath/tools/rmic/templates/ImplTie.jav
delete mode 100644 libjava/classpath/tools/resource/gnu/classpath/tools/rmic/templates/Stub.jav
delete mode 100644 libjava/classpath/tools/resource/gnu/classpath/tools/rmic/templates/StubMethod.jav
delete mode 100644 libjava/classpath/tools/resource/gnu/classpath/tools/rmic/templates/StubMethodVoid.jav
delete mode 100644 libjava/classpath/tools/resource/gnu/classpath/tools/rmic/templates/Stub_12.jav
delete mode 100644 libjava/classpath/tools/resource/gnu/classpath/tools/rmic/templates/Stub_12Method.jav
delete mode 100644 libjava/classpath/tools/resource/gnu/classpath/tools/rmic/templates/Stub_12MethodVoid.jav
delete mode 100644 libjava/classpath/tools/resource/gnu/classpath/tools/rmic/templates/Tie.jav
delete mode 100644 libjava/classpath/tools/resource/gnu/classpath/tools/rmic/templates/TieMethod.jav
delete mode 100644 libjava/classpath/tools/resource/gnu/classpath/tools/rmic/templates/TieMethodVoid.jav
delete mode 100644 libjava/classpath/tools/resource/gnu/classpath/tools/rmid/messages.properties
delete mode 100644 libjava/classpath/tools/resource/gnu/classpath/tools/rmiregistry/messages.properties
delete mode 100644 libjava/classpath/tools/resource/gnu/classpath/tools/serialver/messages.properties
delete mode 100644 libjava/classpath/tools/resource/gnu/classpath/tools/tnameserv/messages.properties
delete mode 100644 libjava/classpath/tools/resource/sun/rmi/rmic/messages.properties
delete mode 100644 libjava/classpath/tools/sun/rmi/rmic/Main.java
delete mode 100644 libjava/classpath/tools/sun/rmi/rmic/Messages.java
delete mode 100644 libjava/classpath/tools/toolwrapper.c
(limited to 'libjava/classpath/tools')
diff --git a/libjava/classpath/tools/.cvsignore b/libjava/classpath/tools/.cvsignore
deleted file mode 100644
index a013e8d..0000000
--- a/libjava/classpath/tools/.cvsignore
+++ /dev/null
@@ -1,19 +0,0 @@
-jarsigner
-keytool
-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
deleted file mode 100755
index 0233e19..0000000
--- a/libjava/classpath/tools/Makefile.am
+++ /dev/null
@@ -1,401 +0,0 @@
-## Input file for automake to generate the Makefile.in used by configure
-
-if CREATE_GJDOC
-## GCJ LOCAL: always put source files in srcdir
-## if CREATE_GJDOC_PARSER
-## gjdoc_gendir = ${top_builddir}/tools/generated
-## else
-gjdoc_gendir = ${top_srcdir}/tools/generated
-## endif
-## END GCJ LOCAL
-ANTLR_CLASSPATH = $(ANTLR_JAR):$(gjdoc_gendir)
-endif
-
-## GCJ LOCAL: use srcdir to find core classes.
-GLIBJ_BOOTCLASSPATH='$(top_srcdir)/lib'
-GLIBJ_CLASSPATH=.:$(srcdir)/asm:$(ANTLR_CLASSPATH)
-## END GCJ LOCAL
-
-# Setup the compiler to use the GNU Classpath library we just built.
-if GCJ_JAVAC
-JCOMPILER = $(JAVAC) $(JAVACFLAGS) -fsource=1.5 -ftarget=1.5 --encoding=UTF-8 --bootclasspath=$(GLIBJ_BOOTCLASSPATH) --classpath=$(GLIBJ_CLASSPATH)
-else
-JCOMPILER = $(JAVAC) $(JAVACFLAGS) -source 1.5 -target 1.5 -encoding UTF-8 -bootclasspath $(GLIBJ_BOOTCLASSPATH) -classpath $(GLIBJ_CLASSPATH)
-endif
-
-if CREATE_WRAPPERS
-bin_SCRIPTS =
-bin_programs = gappletviewer gjarsigner gkeytool \
- gjar gnative2ascii gserialver gjavah grmiregistry \
- gtnameserv gorbd grmid grmic
-if CREATE_GJDOC
-bin_programs += gjdoc
-endif
-if INSTALL_BINARIES
-bin_PROGRAMS = $(bin_programs)
-else
-noinst_PROGRAMS = $(bin_programs)
-endif
-
-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\"" \
- -DMAINCLASS="\"Native2ASCII\""
-
-gserialver_SOURCES = toolwrapper.c
-gserialver_CFLAGS = \
- -DTOOLPACKAGE="\"serialver\"" \
- -DTOOLNAME="\"gserialver\"" \
- -DMAINCLASS="\"SerialVer\""
-
-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\""
-
-gjdoc_SOURCES = toolwrapper.c
-gjdoc_CFLAGS = \
- -DTOOLPACKAGE="\"gjdoc\"" \
- -DTOOLNAME="\"gjdoc\""
-
-else
-## GCJ LOCAL: do not install these.
-noinst_SCRIPTS = gappletviewer gjarsigner gkeytool \
- gjar gnative2ascii gserialver gjavah grmiregistry \
- gtnameserv gorbd grmid grmic
-if CREATE_GJDOC
-noinst_SCRIPTS += gjdoc
-endif
-bin_PROGRAMS =
-endif
-EXTRA_DIST = toolwrapper.c gappletviewer.in gjarsigner.in gkeytool.in \
- gjar.in gnative2ascii.in gserialver.in gjavah.in grmiregistry.in \
- gtnameserv.in gorbd.in grmid.in grmic.in gjdoc.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 \
- $(srcdir)/gnu/classpath/tools/*/*/*/*.java \
- $(srcdir)/com/sun/javadoc/*.java \
- $(srcdir)/com/sun/tools/doclets/*.java \
- $(srcdir)/com/sun/tools/javac/*.java \
- $(srcdir)/com/sun/tools/javah/*.java \
- $(srcdir)/com/sun/tools/javadoc/*.java \
- $(srcdir)/sun/rmi/rmic/*.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
-
-# Properties files that must be included in the generated zip file.
-PROPERTY_FILES = $(srcdir)/external/asm/org/objectweb/asm/optimizer/shrink.properties \
- $(srcdir)/resource/com/sun/tools/javac/messages.properties \
- $(srcdir)/resource/gnu/classpath/tools/jar/messages.properties \
- $(srcdir)/resource/gnu/classpath/tools/orbd/messages.properties \
- $(srcdir)/resource/gnu/classpath/tools/rmic/messages.properties \
- $(srcdir)/resource/gnu/classpath/tools/rmid/messages.properties \
- $(srcdir)/resource/gnu/classpath/tools/serialver/messages.properties \
- $(srcdir)/resource/gnu/classpath/tools/keytool/messages.properties \
- $(srcdir)/resource/gnu/classpath/tools/native2ascii/messages.properties \
- $(srcdir)/resource/gnu/classpath/tools/appletviewer/messages.properties \
- $(srcdir)/resource/gnu/classpath/tools/common/messages.properties \
- $(srcdir)/resource/gnu/classpath/tools/getopt/messages.properties \
- $(srcdir)/resource/gnu/classpath/tools/tnameserv/messages.properties \
- $(srcdir)/resource/gnu/classpath/tools/jarsigner/messages.properties \
- $(srcdir)/resource/gnu/classpath/tools/rmiregistry/messages.properties \
- $(srcdir)/resource/sun/rmi/rmic/messages.properties
-
-# RMIC templates that must be included in the generated zip file.
-RMIC_TEMPLATES = $(srcdir)/resource/gnu/classpath/tools/rmic/templates/*.jav
-
-# gjdoc resource files.
-gnu_classpath_tools_gjdoc_jar_CSS = \
- doctranslets/html/res/gjdochtml-clean.css \
- doctranslets/html/res/gjdochtml-fixed.css \
- doctranslets/html/res/gjdochtml-sclara.css \
- doctranslets/html/res/gjdochtml.css \
- htmldoclet/gjdochtml-vanilla.css \
- htmldoclet/gjdochtml-clean-layout.css \
- htmldoclet/gjdochtml-clean-color1.css
-
-gnu_classpath_tools_gjdoc_jar_DTDS = \
- htmldoclet/xhtml11-target10.dtd \
- dtd/gjdoc-alphaindex.dtd \
- dtd/gjdoc.dtd
-
-gnu_classpath_tools_gjdoc_jar_ENTS = \
- dtd/ent/iso-amsa.ent \
- dtd/ent/iso-amsb.ent \
- dtd/ent/iso-amsc.ent \
- dtd/ent/iso-amsn.ent \
- dtd/ent/iso-amso.ent \
- dtd/ent/iso-amsr.ent \
- dtd/ent/iso-box.ent \
- dtd/ent/iso-cyr1.ent \
- dtd/ent/iso-cyr2.ent \
- dtd/ent/iso-dia.ent \
- dtd/ent/iso-grk1.ent \
- dtd/ent/iso-grk2.ent \
- dtd/ent/iso-grk3.ent \
- dtd/ent/iso-grk4.ent \
- dtd/ent/iso-lat1.ent \
- dtd/ent/iso-lat2.ent \
- dtd/ent/iso-num.ent \
- dtd/ent/iso-pub.ent \
- dtd/ent/iso-tech.ent
-
-gnu_classpath_tools_gjdoc_jar_HTML = doctranslets/html/res/default_help_en.html
-
-gnu_classpath_tools_gjdoc_jar_JS = \
- doctranslets/html/res/gjdoc.js \
- htmldoclet/gjdoc.js
-
-gnu_classpath_tools_gjdoc_jar_PNG = \
- htmldoclet/inherit.png
-
-gnu_classpath_tools_gjdoc_jar_MODS = dtd/dbcentx.mod
-
-gnu_classpath_tools_gjdoc_jar_PROPERTIES = htmldoclet/HtmlDoclet.properties
-
-gnu_classpath_tools_gjdoc_jar_RNGS = \
- rng/gjdoc-classdoc.rng \
- rng/gjdoc-common.rng \
- rng/gjdoc-index.rng
-
-gnu_classpath_tools_gjdoc_jar_TXTS = \
- java.lang-classes-1.2.txt \
- java.lang-classes-1.3.txt \
- java.lang-classes-1.4.txt \
- java.lang-classes-1.5.txt
-
-gnu_classpath_tools_gjdoc_jar_XHTML = htmldoclet/help.xhtml
-
-gnu_classpath_tools_gjdoc_jar_XSLS = \
- doctranslets/gjdoc_common.xsl \
- doctranslets/html/about.xsl \
- doctranslets/html/allclasses.xsl \
- doctranslets/html/allpackages.xsl \
- doctranslets/html/alphaindex.xsl \
- doctranslets/html/alphaindex_chunked.xsl \
- doctranslets/html/classdoc-source.xsl \
- doctranslets/html/classdoc-uses.xsl \
- doctranslets/html/classdoc.xsl \
- doctranslets/html/deprecated.xsl \
- doctranslets/html/descriptor.xsl \
- doctranslets/html/doctranslet.xsl \
- doctranslets/html/fulltree.xsl \
- doctranslets/html/gjdoc.xsl \
- doctranslets/html/help.xsl \
- doctranslets/html/html_common.xsl \
- doctranslets/html/index_noframes.xsl \
- doctranslets/html/index.xsl \
- doctranslets/html/packageclasses.xsl \
- doctranslets/html/packagedoc.xsl
-
-# All our resources.
-gjdoc_resources = $(gnu_classpath_tools_gjdoc_jar_CSS) $(gnu_classpath_tools_gjdoc_jar_DTDS) \
- $(gnu_classpath_tools_gjdoc_jar_ENTS) $(gnu_classpath_tools_gjdoc_jar_HTML) \
- $(gnu_classpath_tools_gjdoc_jar_JS) $(gnu_classpath_tools_gjdoc_jar_MODS) \
- $(gnu_classpath_tools_gjdoc_jar_PNG) $(gnu_classpath_tools_gjdoc_jar_PROPERTIES) \
- $(gnu_classpath_tools_gjdoc_jar_RNGS) $(gnu_classpath_tools_gjdoc_jar_TXTS) \
- $(gnu_classpath_tools_gjdoc_jar_XHTML) $(gnu_classpath_tools_gjdoc_jar_XSLS)
-
-if !CREATE_GJDOC
-GJDOC_EX = -name gjdoc -prune -o \
- -name doclets -prune -o \
- -name taglets -prune -o \
- -name javadoc -prune -o
-endif
-
-# The zip files with classes we want to produce.
-TOOLS_ZIP = tools.zip
-
-# Extra objects that will not exist until configure-time
-BUILT_SOURCES = $(TOOLS_ZIP)
-
-# All the files we find "interesting"
-ALL_TOOLS_FILES = $(TOOLS_JAVA_FILES) $(RMIC_TEMPLATES) $(PROPERTY_FILES) \
- $(addprefix $(srcdir)/resource/gnu/classpath/tools/gjdoc/,$(gjdoc_resources))\
- $(srcdir)/gnu/classpath/tools/gjdoc/expr/java-expression.g
-
-# Some architecture independent data to be installed.
-# GCJ LOCAL: do not install this.
-noinst_DATA = $(TOOLS_ZIP)
-
-# Where we want these data files installed.
-TOOLSdir = $(pkgdatadir)
-
-# Make sure everything is included in the distribution.
-dist-hook:
- srcdir_cnt=`echo $(srcdir) | wc -c`; \
- for file in $(ALL_TOOLS_FILES); do \
- f=`echo $$file | cut -c$$srcdir_cnt-`; \
- fdir=`dirname $$f`; \
- if test ! -d $(distdir)/$$fdir; then \
- echo "$(makeinstalldirs) $(distdir)/$$fdir"; \
- $(mkinstalldirs) $(distdir)/$$fdir; \
- fi; \
- echo "cp -p $$file $(distdir)/$$f"; \
- if ! cp -p $$file $(distdir)/$$f; then \
- exit -1 ; \
- fi ; \
- done
-
-# To generate the example zip just depend on the sources and ignore
-# the class files. Always regenerate all .class files and remove them
-# immediately. And copy the template files we use to the classes dir
-# so they get also included.
-$(TOOLS_ZIP): $(ALL_TOOLS_FILES)
-## GCJ LOCAL: put classes in srcdir
-## @rm -rf classes asm
-## @mkdir_p@ classes asm
-if JAVA_MAINTAINER_MODE
-if CREATE_GJDOC
-if CREATE_GJDOC_PARSER
-## Generate antlr sources.
- @mkdir_p@ $(gjdoc_gendir)/gnu/classpath/tools/gjdoc/expr
- $(ANTLR) -o $(gjdoc_gendir)/gnu/classpath/tools/gjdoc/expr/ \
- $(srcdir)/gnu/classpath/tools/gjdoc/expr/java-expression.g
-endif
-endif
-endif
- find $(srcdir)/external/asm -name '*.java' -print > asm.lst
- find $(srcdir)/gnu/classpath/tools \
- $(srcdir)/com/sun/javadoc \
- $(srcdir)/com/sun/tools/doclets \
- $(srcdir)/com/sun/tools/javadoc \
- $(srcdir)/com/sun/tools/javac \
- $(srcdir)/com/sun/tools/javah \
- $(srcdir)/sun/rmi/rmic \
- $(GJDOC_EX) \
- -name '*.java' -print > classes.lst
- if [ -f $(top_builddir)/../vm-tools-packages ]; then \
- : > vm-tools.lst; \
- for pkg in `cat $(top_builddir)/../vm-tools-packages`; do \
- $(FIND) $(top_srcdir)/../$$pkg -follow -name '*.java' -print >> vm-tools.lst; \
- done \
- else \
- echo -n > vm-tools.lst; \
- fi
- cat classes.lst asm.lst vm-tools.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) $(USE_JAVAC_FLAGS) -g -d $(srcdir)/classes @classes.lst @vm-tools.lst
-endif
-## END GCJ LOCAL
-## Copy over tools resource files.
- @list=`cd $(srcdir)/resource && find gnu/classpath/tools com/sun/tools/javac \
- sun/rmi/rmic $(GJDOC_EX) -name \*.properties -print -o -name \*.jav -print`; \
- for p in $$list; do \
- dirname=classes/`dirname $$p`; \
- if ! test -d "$$dirname"; then @mkdir_p@ "$$dirname"; fi; \
- echo " cp $(srcdir)/resource/$$p classes/$$p"; \
- cp $(srcdir)/resource/$$p classes/$$p; \
- done
-## BEGIN GCJ LOCAL
- cp -pR $(srcdir)/asm .
- cp -pR $(srcdir)/classes .
- find asm classes -type d -exec chmod u+w \{\} \;
- if [ -d asm/.svn ]; then \
- find asm classes -depth -type d -name .svn -exec rm -rf \{\} \;; \
- fi
-## END GCJ LOCAL
-if CREATE_GJDOC
-## Copy over gjdoc resource files.
- for res in $(gjdoc_resources); do \
- dir=classes/`dirname $$res`; \
- if ! test -d "$$dir"; then @mkdir_p@ "$$dir"; fi; \
- echo " cp $(srcdir)/resource/gnu/classpath/tools/gjdoc/$$res classes/$$res"; \
- cp $(srcdir)/resource/gnu/classpath/tools/gjdoc/$$res classes/$$res; \
- done
-endif
-
-if WITH_JAR
-CREATE_TOOLS_ZIP=$(JAR) cf ../$(TOOLS_ZIP) .
-UPDATE_TOOLS_ZIP=$(JAR) uf ../$(TOOLS_ZIP) .
-else
-CREATE_TOOLS_ZIP=$(ZIP) -r ../$(TOOLS_ZIP) .
-UPDATE_TOOLS_ZIP=$(ZIP) -u -r ../$(TOOLS_ZIP) .
-endif
-
-## First add classpath tools stuff.
- (cd classes; \
- $(CREATE_TOOLS_ZIP); \
- cd ..)
-## Now add ASM classes.
- (cd asm; \
- $(UPDATE_TOOLS_ZIP); \
- 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 classes.lst asm asm.lst all-classes.lst
-if CREATE_GJDOC_PARSER
- rm -rf $(gjdoc_gendir)
-endif
-
-# 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
deleted file mode 100644
index 9411066..0000000
--- a/libjava/classpath/tools/Makefile.in
+++ /dev/null
@@ -1,1429 +0,0 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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@
-
-
-
-VPATH = @srcdir@
-am__make_dryrun = \
- { \
- am__dry=no; \
- case $$MAKEFLAGS in \
- *\\[\ \ ]*) \
- echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
- | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
- *) \
- for am__flg in $$MAKEFLAGS; do \
- case $$am__flg in \
- *=*|--*) ;; \
- *n*) am__dry=yes; break;; \
- esac; \
- done;; \
- esac; \
- test $$am__dry = yes; \
- }
-pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-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@
-@CREATE_GJDOC_TRUE@@CREATE_WRAPPERS_TRUE@am__append_1 = gjdoc
-@CREATE_WRAPPERS_TRUE@@INSTALL_BINARIES_TRUE@bin_PROGRAMS = \
-@CREATE_WRAPPERS_TRUE@@INSTALL_BINARIES_TRUE@ $(am__EXEEXT_2)
-@CREATE_WRAPPERS_TRUE@@INSTALL_BINARIES_FALSE@noinst_PROGRAMS = \
-@CREATE_WRAPPERS_TRUE@@INSTALL_BINARIES_FALSE@ $(am__EXEEXT_2)
-@CREATE_GJDOC_TRUE@@CREATE_WRAPPERS_FALSE@am__append_2 = gjdoc
-subdir = tools
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
- $(srcdir)/gappletviewer.in $(srcdir)/gjarsigner.in \
- $(srcdir)/gkeytool.in $(srcdir)/gjar.in \
- $(srcdir)/gnative2ascii.in $(srcdir)/gserialver.in \
- $(srcdir)/grmiregistry.in $(srcdir)/gtnameserv.in \
- $(srcdir)/gorbd.in $(srcdir)/grmid.in $(srcdir)/grmic.in \
- $(srcdir)/gjavah.in $(srcdir)/gjdoc.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/multi.m4 \
- $(top_srcdir)/../../config/no-executables.m4 \
- $(top_srcdir)/../../config/override.m4 \
- $(top_srcdir)/../../libtool.m4 \
- $(top_srcdir)/../../ltoptions.m4 \
- $(top_srcdir)/../../ltsugar.m4 \
- $(top_srcdir)/../../ltversion.m4 \
- $(top_srcdir)/../../lt~obsolete.m4 \
- $(top_srcdir)/m4/ac_prog_antlr.m4 \
- $(top_srcdir)/m4/ac_prog_java.m4 \
- $(top_srcdir)/m4/ac_prog_java_works.m4 \
- $(top_srcdir)/m4/ac_prog_javac.m4 \
- $(top_srcdir)/m4/ac_prog_javac_works.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/ax_func_which_gethostbyname_r.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 = gappletviewer gjarsigner gkeytool gjar \
- gnative2ascii gserialver grmiregistry gtnameserv gorbd grmid \
- grmic gjavah gjdoc
-CONFIG_CLEAN_VPATH_FILES =
-@CREATE_GJDOC_TRUE@@CREATE_WRAPPERS_TRUE@am__EXEEXT_1 = \
-@CREATE_GJDOC_TRUE@@CREATE_WRAPPERS_TRUE@ gjdoc$(EXEEXT)
-@CREATE_WRAPPERS_TRUE@am__EXEEXT_2 = 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) \
-@CREATE_WRAPPERS_TRUE@ $(am__EXEEXT_1)
-am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(bindir)"
-PROGRAMS = $(bin_PROGRAMS) $(noinst_PROGRAMS)
-@CREATE_WRAPPERS_TRUE@am_gappletviewer_OBJECTS = \
-@CREATE_WRAPPERS_TRUE@ gappletviewer-toolwrapper.$(OBJEXT)
-gappletviewer_OBJECTS = $(am_gappletviewer_OBJECTS)
-gappletviewer_LDADD = $(LDADD)
-gappletviewer_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=link $(CCLD) $(gappletviewer_CFLAGS) \
- $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-@CREATE_WRAPPERS_TRUE@am_gjar_OBJECTS = gjar-toolwrapper.$(OBJEXT)
-gjar_OBJECTS = $(am_gjar_OBJECTS)
-gjar_LDADD = $(LDADD)
-gjar_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
- --mode=link $(CCLD) $(gjar_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
- $(LDFLAGS) -o $@
-@CREATE_WRAPPERS_TRUE@am_gjarsigner_OBJECTS = \
-@CREATE_WRAPPERS_TRUE@ gjarsigner-toolwrapper.$(OBJEXT)
-gjarsigner_OBJECTS = $(am_gjarsigner_OBJECTS)
-gjarsigner_LDADD = $(LDADD)
-gjarsigner_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=link $(CCLD) $(gjarsigner_CFLAGS) \
- $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-@CREATE_WRAPPERS_TRUE@am_gjavah_OBJECTS = \
-@CREATE_WRAPPERS_TRUE@ gjavah-toolwrapper.$(OBJEXT)
-gjavah_OBJECTS = $(am_gjavah_OBJECTS)
-gjavah_LDADD = $(LDADD)
-gjavah_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
- --mode=link $(CCLD) $(gjavah_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
- $(LDFLAGS) -o $@
-@CREATE_WRAPPERS_TRUE@am_gjdoc_OBJECTS = gjdoc-toolwrapper.$(OBJEXT)
-gjdoc_OBJECTS = $(am_gjdoc_OBJECTS)
-gjdoc_LDADD = $(LDADD)
-gjdoc_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
- --mode=link $(CCLD) $(gjdoc_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
- $(LDFLAGS) -o $@
-@CREATE_WRAPPERS_TRUE@am_gkeytool_OBJECTS = \
-@CREATE_WRAPPERS_TRUE@ gkeytool-toolwrapper.$(OBJEXT)
-gkeytool_OBJECTS = $(am_gkeytool_OBJECTS)
-gkeytool_LDADD = $(LDADD)
-gkeytool_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
- --mode=link $(CCLD) $(gkeytool_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
- $(LDFLAGS) -o $@
-@CREATE_WRAPPERS_TRUE@am_gnative2ascii_OBJECTS = \
-@CREATE_WRAPPERS_TRUE@ gnative2ascii-toolwrapper.$(OBJEXT)
-gnative2ascii_OBJECTS = $(am_gnative2ascii_OBJECTS)
-gnative2ascii_LDADD = $(LDADD)
-gnative2ascii_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=link $(CCLD) $(gnative2ascii_CFLAGS) \
- $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-@CREATE_WRAPPERS_TRUE@am_gorbd_OBJECTS = gorbd-toolwrapper.$(OBJEXT)
-gorbd_OBJECTS = $(am_gorbd_OBJECTS)
-gorbd_LDADD = $(LDADD)
-gorbd_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
- --mode=link $(CCLD) $(gorbd_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
- $(LDFLAGS) -o $@
-@CREATE_WRAPPERS_TRUE@am_grmic_OBJECTS = grmic-toolwrapper.$(OBJEXT)
-grmic_OBJECTS = $(am_grmic_OBJECTS)
-grmic_LDADD = $(LDADD)
-grmic_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
- --mode=link $(CCLD) $(grmic_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
- $(LDFLAGS) -o $@
-@CREATE_WRAPPERS_TRUE@am_grmid_OBJECTS = grmid-toolwrapper.$(OBJEXT)
-grmid_OBJECTS = $(am_grmid_OBJECTS)
-grmid_LDADD = $(LDADD)
-grmid_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
- --mode=link $(CCLD) $(grmid_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
- $(LDFLAGS) -o $@
-@CREATE_WRAPPERS_TRUE@am_grmiregistry_OBJECTS = \
-@CREATE_WRAPPERS_TRUE@ grmiregistry-toolwrapper.$(OBJEXT)
-grmiregistry_OBJECTS = $(am_grmiregistry_OBJECTS)
-grmiregistry_LDADD = $(LDADD)
-grmiregistry_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=link $(CCLD) $(grmiregistry_CFLAGS) \
- $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-@CREATE_WRAPPERS_TRUE@am_gserialver_OBJECTS = \
-@CREATE_WRAPPERS_TRUE@ gserialver-toolwrapper.$(OBJEXT)
-gserialver_OBJECTS = $(am_gserialver_OBJECTS)
-gserialver_LDADD = $(LDADD)
-gserialver_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=link $(CCLD) $(gserialver_CFLAGS) \
- $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-@CREATE_WRAPPERS_TRUE@am_gtnameserv_OBJECTS = \
-@CREATE_WRAPPERS_TRUE@ gtnameserv-toolwrapper.$(OBJEXT)
-gtnameserv_OBJECTS = $(am_gtnameserv_OBJECTS)
-gtnameserv_LDADD = $(LDADD)
-gtnameserv_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=link $(CCLD) $(gtnameserv_CFLAGS) \
- $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-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 = f=`echo $$p | sed -e 's|^.*/||'`;
-am__install_max = 40
-am__nobase_strip_setup = \
- srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
-am__nobase_strip = \
- for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
-am__nobase_list = $(am__nobase_strip_setup); \
- for p in $$list; do echo "$$p $$p"; done | \
- sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
- $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
- if (++n[$$2] == $(am__install_max)) \
- { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
- END { for (dir in files) print dir, files[dir] }'
-am__base_list = \
- sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
- sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
-am__uninstall_files_from_dir = { \
- test -z "$$files" \
- || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
- || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
- $(am__cd) "$$dir" && rm -f $$files; }; \
- }
-SCRIPTS = $(bin_SCRIPTS) $(noinst_SCRIPTS)
-DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/include
-depcomp = $(SHELL) $(top_srcdir)/../../depcomp
-am__depfiles_maybe = depfiles
-am__mv = mv -f
-COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
- $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
- --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-CCLD = $(CC)
-LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
- --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
- $(LDFLAGS) -o $@
-SOURCES = $(gappletviewer_SOURCES) $(gjar_SOURCES) \
- $(gjarsigner_SOURCES) $(gjavah_SOURCES) $(gjdoc_SOURCES) \
- $(gkeytool_SOURCES) $(gnative2ascii_SOURCES) $(gorbd_SOURCES) \
- $(grmic_SOURCES) $(grmid_SOURCES) $(grmiregistry_SOURCES) \
- $(gserialver_SOURCES) $(gtnameserv_SOURCES)
-am__can_run_installinfo = \
- case $$AM_UPDATE_INFO_DIR in \
- n|no|NO) false;; \
- *) (install-info --version) >/dev/null 2>&1;; \
- esac
-DATA = $(noinst_DATA)
-ETAGS = etags
-CTAGS = ctags
-ACLOCAL = @ACLOCAL@
-AMTAR = @AMTAR@
-ANTLR = @ANTLR@
-ANTLR_JAR = @ANTLR_JAR@
-AR = @AR@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-CAIRO_CFLAGS = @CAIRO_CFLAGS@
-CAIRO_LIBS = @CAIRO_LIBS@
-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@
-CXX = @CXX@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DATE = @DATE@
-DEFAULT_PREFS_PEER = @DEFAULT_PREFS_PEER@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-DSYMUTIL = @DSYMUTIL@
-DUMPBIN = @DUMPBIN@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-ECJ_JAR = @ECJ_JAR@
-EGREP = @EGREP@
-ERROR_CFLAGS = @ERROR_CFLAGS@
-EXAMPLESDIR = @EXAMPLESDIR@
-EXEEXT = @EXEEXT@
-EXTRA_CFLAGS = @EXTRA_CFLAGS@
-FGREP = @FGREP@
-FIND = @FIND@
-FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@
-FREETYPE2_LIBS = @FREETYPE2_LIBS@
-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@
-GMP_CFLAGS = @GMP_CFLAGS@
-GMP_LIBS = @GMP_LIBS@
-GREP = @GREP@
-GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
-GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
-GSTREAMER_CFLAGS = @GSTREAMER_CFLAGS@
-GSTREAMER_FILE_READER = @GSTREAMER_FILE_READER@
-GSTREAMER_LIBS = @GSTREAMER_LIBS@
-GSTREAMER_MIXER_PROVIDER = @GSTREAMER_MIXER_PROVIDER@
-GSTREAMER_PLUGINS_BASE_CFLAGS = @GSTREAMER_PLUGINS_BASE_CFLAGS@
-GSTREAMER_PLUGINS_BASE_LIBS = @GSTREAMER_PLUGINS_BASE_LIBS@
-GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@
-GTK_CFLAGS = @GTK_CFLAGS@
-GTK_LIBS = @GTK_LIBS@
-INIT_LOAD_LIBRARY = @INIT_LOAD_LIBRARY@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-JAR = @JAR@
-JAVA = @JAVA@
-JAVAC = @JAVAC@
-JAVAC_IS_GCJ = @JAVAC_IS_GCJ@
-JAVAC_MEM_OPT = @JAVAC_MEM_OPT@
-JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@
-JAY = @JAY@
-JAY_SKELETON = @JAY_SKELETON@
-LD = @LD@
-LDFLAGS = @LDFLAGS@
-LIBDEBUG = @LIBDEBUG@
-LIBICONV = @LIBICONV@
-LIBMAGIC = @LIBMAGIC@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBTOOL = @LIBTOOL@
-LIBVERSION = @LIBVERSION@
-LIPO = @LIPO@
-LN_S = @LN_S@
-LTLIBICONV = @LTLIBICONV@
-LTLIBOBJS = @LTLIBOBJS@
-MAINT = @MAINT@
-MAKEINFO = @MAKEINFO@
-MKDIR = @MKDIR@
-MKDIR_P = @MKDIR_P@
-MOC = @MOC@
-MOC4 = @MOC4@
-MOZILLA_CFLAGS = @MOZILLA_CFLAGS@
-MOZILLA_LIBS = @MOZILLA_LIBS@
-NM = @NM@
-NMEDIT = @NMEDIT@
-OBJDUMP = @OBJDUMP@
-OBJEXT = @OBJEXT@
-OTOOL = @OTOOL@
-OTOOL64 = @OTOOL64@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
-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@
-REMOVE = @REMOVE@
-SED = @SED@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-STRICT_WARNING_CFLAGS = @STRICT_WARNING_CFLAGS@
-STRIP = @STRIP@
-TOOLSDIR = @TOOLSDIR@
-USER_JAVAH = @USER_JAVAH@
-VERSION = @VERSION@
-WANT_NATIVE_BIG_INTEGER = @WANT_NATIVE_BIG_INTEGER@
-WARNING_CFLAGS = @WARNING_CFLAGS@
-XMKMF = @XMKMF@
-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@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_ANTLR = @ac_ct_ANTLR@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
-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@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-default_toolkit = @default_toolkit@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-glibjdir = @glibjdir@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-multi_basedir = @multi_basedir@
-nativeexeclibdir = @nativeexeclibdir@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target = @target@
-target_alias = @target_alias@
-target_cpu = @target_cpu@
-target_noncanonical = @target_noncanonical@
-target_os = @target_os@
-target_vendor = @target_vendor@
-toolexecdir = @toolexecdir@
-toolexeclibdir = @toolexeclibdir@
-toolexecmainlibdir = @toolexecmainlibdir@
-top_build_prefix = @top_build_prefix@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-uudecode = @uudecode@
-vm_classes = @vm_classes@
-@CREATE_GJDOC_TRUE@gjdoc_gendir = ${top_srcdir}/tools/generated
-@CREATE_GJDOC_TRUE@ANTLR_CLASSPATH = $(ANTLR_JAR):$(gjdoc_gendir)
-GLIBJ_BOOTCLASSPATH = '$(top_srcdir)/lib'
-GLIBJ_CLASSPATH = .:$(srcdir)/asm:$(ANTLR_CLASSPATH)
-@GCJ_JAVAC_FALSE@JCOMPILER = $(JAVAC) $(JAVACFLAGS) -source 1.5 -target 1.5 -encoding UTF-8 -bootclasspath $(GLIBJ_BOOTCLASSPATH) -classpath $(GLIBJ_CLASSPATH)
-
-# Setup the compiler to use the GNU Classpath library we just built.
-@GCJ_JAVAC_TRUE@JCOMPILER = $(JAVAC) $(JAVACFLAGS) -fsource=1.5 -ftarget=1.5 --encoding=UTF-8 --bootclasspath=$(GLIBJ_BOOTCLASSPATH) --classpath=$(GLIBJ_CLASSPATH)
-@CREATE_WRAPPERS_TRUE@bin_SCRIPTS =
-@CREATE_WRAPPERS_TRUE@bin_programs = gappletviewer gjarsigner gkeytool \
-@CREATE_WRAPPERS_TRUE@ gjar gnative2ascii gserialver gjavah \
-@CREATE_WRAPPERS_TRUE@ grmiregistry gtnameserv gorbd grmid \
-@CREATE_WRAPPERS_TRUE@ grmic $(am__append_1)
-@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@ -DMAINCLASS="\"Native2ASCII\""
-
-@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@ -DMAINCLASS="\"SerialVer\""
-
-@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\""
-
-@CREATE_WRAPPERS_TRUE@gjdoc_SOURCES = toolwrapper.c
-@CREATE_WRAPPERS_TRUE@gjdoc_CFLAGS = \
-@CREATE_WRAPPERS_TRUE@ -DTOOLPACKAGE="\"gjdoc\"" \
-@CREATE_WRAPPERS_TRUE@ -DTOOLNAME="\"gjdoc\""
-
-@CREATE_WRAPPERS_FALSE@noinst_SCRIPTS = gappletviewer gjarsigner \
-@CREATE_WRAPPERS_FALSE@ gkeytool gjar gnative2ascii gserialver \
-@CREATE_WRAPPERS_FALSE@ gjavah grmiregistry gtnameserv gorbd \
-@CREATE_WRAPPERS_FALSE@ grmid grmic $(am__append_2)
-EXTRA_DIST = toolwrapper.c gappletviewer.in gjarsigner.in gkeytool.in \
- gjar.in gnative2ascii.in gserialver.in gjavah.in grmiregistry.in \
- gtnameserv.in gorbd.in grmid.in grmic.in gjdoc.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 \
- $(srcdir)/gnu/classpath/tools/*/*/*/*.java \
- $(srcdir)/com/sun/javadoc/*.java \
- $(srcdir)/com/sun/tools/doclets/*.java \
- $(srcdir)/com/sun/tools/javac/*.java \
- $(srcdir)/com/sun/tools/javah/*.java \
- $(srcdir)/com/sun/tools/javadoc/*.java \
- $(srcdir)/sun/rmi/rmic/*.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
-
-
-# Properties files that must be included in the generated zip file.
-PROPERTY_FILES = $(srcdir)/external/asm/org/objectweb/asm/optimizer/shrink.properties \
- $(srcdir)/resource/com/sun/tools/javac/messages.properties \
- $(srcdir)/resource/gnu/classpath/tools/jar/messages.properties \
- $(srcdir)/resource/gnu/classpath/tools/orbd/messages.properties \
- $(srcdir)/resource/gnu/classpath/tools/rmic/messages.properties \
- $(srcdir)/resource/gnu/classpath/tools/rmid/messages.properties \
- $(srcdir)/resource/gnu/classpath/tools/serialver/messages.properties \
- $(srcdir)/resource/gnu/classpath/tools/keytool/messages.properties \
- $(srcdir)/resource/gnu/classpath/tools/native2ascii/messages.properties \
- $(srcdir)/resource/gnu/classpath/tools/appletviewer/messages.properties \
- $(srcdir)/resource/gnu/classpath/tools/common/messages.properties \
- $(srcdir)/resource/gnu/classpath/tools/getopt/messages.properties \
- $(srcdir)/resource/gnu/classpath/tools/tnameserv/messages.properties \
- $(srcdir)/resource/gnu/classpath/tools/jarsigner/messages.properties \
- $(srcdir)/resource/gnu/classpath/tools/rmiregistry/messages.properties \
- $(srcdir)/resource/sun/rmi/rmic/messages.properties
-
-
-# RMIC templates that must be included in the generated zip file.
-RMIC_TEMPLATES = $(srcdir)/resource/gnu/classpath/tools/rmic/templates/*.jav
-
-# gjdoc resource files.
-gnu_classpath_tools_gjdoc_jar_CSS = \
- doctranslets/html/res/gjdochtml-clean.css \
- doctranslets/html/res/gjdochtml-fixed.css \
- doctranslets/html/res/gjdochtml-sclara.css \
- doctranslets/html/res/gjdochtml.css \
- htmldoclet/gjdochtml-vanilla.css \
- htmldoclet/gjdochtml-clean-layout.css \
- htmldoclet/gjdochtml-clean-color1.css
-
-gnu_classpath_tools_gjdoc_jar_DTDS = \
- htmldoclet/xhtml11-target10.dtd \
- dtd/gjdoc-alphaindex.dtd \
- dtd/gjdoc.dtd
-
-gnu_classpath_tools_gjdoc_jar_ENTS = \
- dtd/ent/iso-amsa.ent \
- dtd/ent/iso-amsb.ent \
- dtd/ent/iso-amsc.ent \
- dtd/ent/iso-amsn.ent \
- dtd/ent/iso-amso.ent \
- dtd/ent/iso-amsr.ent \
- dtd/ent/iso-box.ent \
- dtd/ent/iso-cyr1.ent \
- dtd/ent/iso-cyr2.ent \
- dtd/ent/iso-dia.ent \
- dtd/ent/iso-grk1.ent \
- dtd/ent/iso-grk2.ent \
- dtd/ent/iso-grk3.ent \
- dtd/ent/iso-grk4.ent \
- dtd/ent/iso-lat1.ent \
- dtd/ent/iso-lat2.ent \
- dtd/ent/iso-num.ent \
- dtd/ent/iso-pub.ent \
- dtd/ent/iso-tech.ent
-
-gnu_classpath_tools_gjdoc_jar_HTML = doctranslets/html/res/default_help_en.html
-gnu_classpath_tools_gjdoc_jar_JS = \
- doctranslets/html/res/gjdoc.js \
- htmldoclet/gjdoc.js
-
-gnu_classpath_tools_gjdoc_jar_PNG = \
- htmldoclet/inherit.png
-
-gnu_classpath_tools_gjdoc_jar_MODS = dtd/dbcentx.mod
-gnu_classpath_tools_gjdoc_jar_PROPERTIES = htmldoclet/HtmlDoclet.properties
-gnu_classpath_tools_gjdoc_jar_RNGS = \
- rng/gjdoc-classdoc.rng \
- rng/gjdoc-common.rng \
- rng/gjdoc-index.rng
-
-gnu_classpath_tools_gjdoc_jar_TXTS = \
- java.lang-classes-1.2.txt \
- java.lang-classes-1.3.txt \
- java.lang-classes-1.4.txt \
- java.lang-classes-1.5.txt
-
-gnu_classpath_tools_gjdoc_jar_XHTML = htmldoclet/help.xhtml
-gnu_classpath_tools_gjdoc_jar_XSLS = \
- doctranslets/gjdoc_common.xsl \
- doctranslets/html/about.xsl \
- doctranslets/html/allclasses.xsl \
- doctranslets/html/allpackages.xsl \
- doctranslets/html/alphaindex.xsl \
- doctranslets/html/alphaindex_chunked.xsl \
- doctranslets/html/classdoc-source.xsl \
- doctranslets/html/classdoc-uses.xsl \
- doctranslets/html/classdoc.xsl \
- doctranslets/html/deprecated.xsl \
- doctranslets/html/descriptor.xsl \
- doctranslets/html/doctranslet.xsl \
- doctranslets/html/fulltree.xsl \
- doctranslets/html/gjdoc.xsl \
- doctranslets/html/help.xsl \
- doctranslets/html/html_common.xsl \
- doctranslets/html/index_noframes.xsl \
- doctranslets/html/index.xsl \
- doctranslets/html/packageclasses.xsl \
- doctranslets/html/packagedoc.xsl
-
-
-# All our resources.
-gjdoc_resources = $(gnu_classpath_tools_gjdoc_jar_CSS) $(gnu_classpath_tools_gjdoc_jar_DTDS) \
- $(gnu_classpath_tools_gjdoc_jar_ENTS) $(gnu_classpath_tools_gjdoc_jar_HTML) \
- $(gnu_classpath_tools_gjdoc_jar_JS) $(gnu_classpath_tools_gjdoc_jar_MODS) \
- $(gnu_classpath_tools_gjdoc_jar_PNG) $(gnu_classpath_tools_gjdoc_jar_PROPERTIES) \
- $(gnu_classpath_tools_gjdoc_jar_RNGS) $(gnu_classpath_tools_gjdoc_jar_TXTS) \
- $(gnu_classpath_tools_gjdoc_jar_XHTML) $(gnu_classpath_tools_gjdoc_jar_XSLS)
-
-@CREATE_GJDOC_FALSE@GJDOC_EX = -name gjdoc -prune -o \
-@CREATE_GJDOC_FALSE@ -name doclets -prune -o \
-@CREATE_GJDOC_FALSE@ -name taglets -prune -o \
-@CREATE_GJDOC_FALSE@ -name javadoc -prune -o
-
-
-# The zip files with classes we want to produce.
-TOOLS_ZIP = tools.zip
-
-# Extra objects that will not exist until configure-time
-BUILT_SOURCES = $(TOOLS_ZIP)
-
-# All the files we find "interesting"
-ALL_TOOLS_FILES = $(TOOLS_JAVA_FILES) $(RMIC_TEMPLATES) $(PROPERTY_FILES) \
- $(addprefix $(srcdir)/resource/gnu/classpath/tools/gjdoc/,$(gjdoc_resources))\
- $(srcdir)/gnu/classpath/tools/gjdoc/expr/java-expression.g
-
-
-# Some architecture independent data to be installed.
-# GCJ LOCAL: do not install this.
-noinst_DATA = $(TOOLS_ZIP)
-
-# Where we want these data files installed.
-TOOLSdir = $(pkgdatadir)
-@WITH_JAR_FALSE@CREATE_TOOLS_ZIP = $(ZIP) -r ../$(TOOLS_ZIP) .
-@WITH_JAR_TRUE@CREATE_TOOLS_ZIP = $(JAR) cf ../$(TOOLS_ZIP) .
-@WITH_JAR_FALSE@UPDATE_TOOLS_ZIP = $(ZIP) -u -r ../$(TOOLS_ZIP) .
-@WITH_JAR_TRUE@UPDATE_TOOLS_ZIP = $(JAR) uf ../$(TOOLS_ZIP) .
-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 \
- *$$dep*) \
- ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
- && { if test -f $@; then exit 0; else break; fi; }; \
- exit 1;; \
- esac; \
- done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tools/Makefile'; \
- $(am__cd) $(top_srcdir) && \
- $(AUTOMAKE) --gnu tools/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
-$(am__aclocal_m4_deps):
-@CREATE_WRAPPERS_FALSE@gappletviewer: $(top_builddir)/config.status $(srcdir)/gappletviewer.in
-@CREATE_WRAPPERS_FALSE@ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
-@CREATE_WRAPPERS_FALSE@gjarsigner: $(top_builddir)/config.status $(srcdir)/gjarsigner.in
-@CREATE_WRAPPERS_FALSE@ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
-@CREATE_WRAPPERS_FALSE@gkeytool: $(top_builddir)/config.status $(srcdir)/gkeytool.in
-@CREATE_WRAPPERS_FALSE@ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
-@CREATE_WRAPPERS_FALSE@gjar: $(top_builddir)/config.status $(srcdir)/gjar.in
-@CREATE_WRAPPERS_FALSE@ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
-@CREATE_WRAPPERS_FALSE@gnative2ascii: $(top_builddir)/config.status $(srcdir)/gnative2ascii.in
-@CREATE_WRAPPERS_FALSE@ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
-@CREATE_WRAPPERS_FALSE@gserialver: $(top_builddir)/config.status $(srcdir)/gserialver.in
-@CREATE_WRAPPERS_FALSE@ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
-@CREATE_WRAPPERS_FALSE@grmiregistry: $(top_builddir)/config.status $(srcdir)/grmiregistry.in
-@CREATE_WRAPPERS_FALSE@ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
-@CREATE_WRAPPERS_FALSE@gtnameserv: $(top_builddir)/config.status $(srcdir)/gtnameserv.in
-@CREATE_WRAPPERS_FALSE@ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
-@CREATE_WRAPPERS_FALSE@gorbd: $(top_builddir)/config.status $(srcdir)/gorbd.in
-@CREATE_WRAPPERS_FALSE@ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
-@CREATE_WRAPPERS_FALSE@grmid: $(top_builddir)/config.status $(srcdir)/grmid.in
-@CREATE_WRAPPERS_FALSE@ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
-@CREATE_WRAPPERS_FALSE@grmic: $(top_builddir)/config.status $(srcdir)/grmic.in
-@CREATE_WRAPPERS_FALSE@ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
-@CREATE_WRAPPERS_FALSE@gjavah: $(top_builddir)/config.status $(srcdir)/gjavah.in
-@CREATE_WRAPPERS_FALSE@ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
-@CREATE_WRAPPERS_FALSE@gjdoc: $(top_builddir)/config.status $(srcdir)/gjdoc.in
-@CREATE_WRAPPERS_FALSE@ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
-install-binPROGRAMS: $(bin_PROGRAMS)
- @$(NORMAL_INSTALL)
- @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
- if test -n "$$list"; then \
- echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \
- $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \
- fi; \
- for p in $$list; do echo "$$p $$p"; done | \
- sed 's/$(EXEEXT)$$//' | \
- while read p p1; do if test -f $$p || test -f $$p1; \
- then echo "$$p"; echo "$$p"; else :; fi; \
- done | \
- sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \
- -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
- sed 'N;N;N;s,\n, ,g' | \
- $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
- { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
- if ($$2 == $$4) files[d] = files[d] " " $$1; \
- else { print "f", $$3 "/" $$4, $$1; } } \
- END { for (d in files) print "f", d, files[d] }' | \
- while read type dir files; do \
- if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
- test -z "$$files" || { \
- echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \
- $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \
- } \
- ; done
-
-uninstall-binPROGRAMS:
- @$(NORMAL_UNINSTALL)
- @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
- files=`for p in $$list; do echo "$$p"; done | \
- sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
- -e 's/$$/$(EXEEXT)/' `; \
- test -n "$$list" || exit 0; \
- echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
- cd "$(DESTDIR)$(bindir)" && rm -f $$files
-
-clean-binPROGRAMS:
- @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \
- echo " rm -f" $$list; \
- rm -f $$list || exit $$?; \
- test -n "$(EXEEXT)" || exit 0; \
- list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
- echo " rm -f" $$list; \
- rm -f $$list
-
-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
-
-clean-noinstPROGRAMS:
- @list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \
- echo " rm -f" $$list; \
- rm -f $$list || exit $$?; \
- test -n "$(EXEEXT)" || exit 0; \
- list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
- echo " rm -f" $$list; \
- rm -f $$list
-@CREATE_WRAPPERS_TRUE@gappletviewer$(EXEEXT): $(gappletviewer_OBJECTS) $(gappletviewer_DEPENDENCIES) $(EXTRA_gappletviewer_DEPENDENCIES)
-@CREATE_WRAPPERS_TRUE@ @rm -f gappletviewer$(EXEEXT)
-@CREATE_WRAPPERS_TRUE@ $(gappletviewer_LINK) $(gappletviewer_OBJECTS) $(gappletviewer_LDADD) $(LIBS)
-@CREATE_WRAPPERS_TRUE@gjar$(EXEEXT): $(gjar_OBJECTS) $(gjar_DEPENDENCIES) $(EXTRA_gjar_DEPENDENCIES)
-@CREATE_WRAPPERS_TRUE@ @rm -f gjar$(EXEEXT)
-@CREATE_WRAPPERS_TRUE@ $(gjar_LINK) $(gjar_OBJECTS) $(gjar_LDADD) $(LIBS)
-@CREATE_WRAPPERS_TRUE@gjarsigner$(EXEEXT): $(gjarsigner_OBJECTS) $(gjarsigner_DEPENDENCIES) $(EXTRA_gjarsigner_DEPENDENCIES)
-@CREATE_WRAPPERS_TRUE@ @rm -f gjarsigner$(EXEEXT)
-@CREATE_WRAPPERS_TRUE@ $(gjarsigner_LINK) $(gjarsigner_OBJECTS) $(gjarsigner_LDADD) $(LIBS)
-@CREATE_WRAPPERS_TRUE@gjavah$(EXEEXT): $(gjavah_OBJECTS) $(gjavah_DEPENDENCIES) $(EXTRA_gjavah_DEPENDENCIES)
-@CREATE_WRAPPERS_TRUE@ @rm -f gjavah$(EXEEXT)
-@CREATE_WRAPPERS_TRUE@ $(gjavah_LINK) $(gjavah_OBJECTS) $(gjavah_LDADD) $(LIBS)
-@CREATE_WRAPPERS_TRUE@gjdoc$(EXEEXT): $(gjdoc_OBJECTS) $(gjdoc_DEPENDENCIES) $(EXTRA_gjdoc_DEPENDENCIES)
-@CREATE_WRAPPERS_TRUE@ @rm -f gjdoc$(EXEEXT)
-@CREATE_WRAPPERS_TRUE@ $(gjdoc_LINK) $(gjdoc_OBJECTS) $(gjdoc_LDADD) $(LIBS)
-@CREATE_WRAPPERS_TRUE@gkeytool$(EXEEXT): $(gkeytool_OBJECTS) $(gkeytool_DEPENDENCIES) $(EXTRA_gkeytool_DEPENDENCIES)
-@CREATE_WRAPPERS_TRUE@ @rm -f gkeytool$(EXEEXT)
-@CREATE_WRAPPERS_TRUE@ $(gkeytool_LINK) $(gkeytool_OBJECTS) $(gkeytool_LDADD) $(LIBS)
-@CREATE_WRAPPERS_TRUE@gnative2ascii$(EXEEXT): $(gnative2ascii_OBJECTS) $(gnative2ascii_DEPENDENCIES) $(EXTRA_gnative2ascii_DEPENDENCIES)
-@CREATE_WRAPPERS_TRUE@ @rm -f gnative2ascii$(EXEEXT)
-@CREATE_WRAPPERS_TRUE@ $(gnative2ascii_LINK) $(gnative2ascii_OBJECTS) $(gnative2ascii_LDADD) $(LIBS)
-@CREATE_WRAPPERS_TRUE@gorbd$(EXEEXT): $(gorbd_OBJECTS) $(gorbd_DEPENDENCIES) $(EXTRA_gorbd_DEPENDENCIES)
-@CREATE_WRAPPERS_TRUE@ @rm -f gorbd$(EXEEXT)
-@CREATE_WRAPPERS_TRUE@ $(gorbd_LINK) $(gorbd_OBJECTS) $(gorbd_LDADD) $(LIBS)
-@CREATE_WRAPPERS_TRUE@grmic$(EXEEXT): $(grmic_OBJECTS) $(grmic_DEPENDENCIES) $(EXTRA_grmic_DEPENDENCIES)
-@CREATE_WRAPPERS_TRUE@ @rm -f grmic$(EXEEXT)
-@CREATE_WRAPPERS_TRUE@ $(grmic_LINK) $(grmic_OBJECTS) $(grmic_LDADD) $(LIBS)
-@CREATE_WRAPPERS_TRUE@grmid$(EXEEXT): $(grmid_OBJECTS) $(grmid_DEPENDENCIES) $(EXTRA_grmid_DEPENDENCIES)
-@CREATE_WRAPPERS_TRUE@ @rm -f grmid$(EXEEXT)
-@CREATE_WRAPPERS_TRUE@ $(grmid_LINK) $(grmid_OBJECTS) $(grmid_LDADD) $(LIBS)
-@CREATE_WRAPPERS_TRUE@grmiregistry$(EXEEXT): $(grmiregistry_OBJECTS) $(grmiregistry_DEPENDENCIES) $(EXTRA_grmiregistry_DEPENDENCIES)
-@CREATE_WRAPPERS_TRUE@ @rm -f grmiregistry$(EXEEXT)
-@CREATE_WRAPPERS_TRUE@ $(grmiregistry_LINK) $(grmiregistry_OBJECTS) $(grmiregistry_LDADD) $(LIBS)
-@CREATE_WRAPPERS_TRUE@gserialver$(EXEEXT): $(gserialver_OBJECTS) $(gserialver_DEPENDENCIES) $(EXTRA_gserialver_DEPENDENCIES)
-@CREATE_WRAPPERS_TRUE@ @rm -f gserialver$(EXEEXT)
-@CREATE_WRAPPERS_TRUE@ $(gserialver_LINK) $(gserialver_OBJECTS) $(gserialver_LDADD) $(LIBS)
-@CREATE_WRAPPERS_TRUE@gtnameserv$(EXEEXT): $(gtnameserv_OBJECTS) $(gtnameserv_DEPENDENCIES) $(EXTRA_gtnameserv_DEPENDENCIES)
-@CREATE_WRAPPERS_TRUE@ @rm -f gtnameserv$(EXEEXT)
-@CREATE_WRAPPERS_TRUE@ $(gtnameserv_LINK) $(gtnameserv_OBJECTS) $(gtnameserv_LDADD) $(LIBS)
-install-binSCRIPTS: $(bin_SCRIPTS)
- @$(NORMAL_INSTALL)
- @list='$(bin_SCRIPTS)'; test -n "$(bindir)" || list=; \
- if test -n "$$list"; then \
- echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \
- $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \
- fi; \
- for p in $$list; do \
- if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \
- done | \
- sed -e 'p;s,.*/,,;n' \
- -e 'h;s|.*|.|' \
- -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \
- $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \
- { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
- if ($$2 == $$4) { files[d] = files[d] " " $$1; \
- if (++n[d] == $(am__install_max)) { \
- print "f", d, files[d]; n[d] = 0; files[d] = "" } } \
- else { print "f", d "/" $$4, $$1 } } \
- END { for (d in files) print "f", d, files[d] }' | \
- while read type dir files; do \
- if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
- test -z "$$files" || { \
- echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(bindir)$$dir'"; \
- $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \
- } \
- ; done
-
-uninstall-binSCRIPTS:
- @$(NORMAL_UNINSTALL)
- @list='$(bin_SCRIPTS)'; test -n "$(bindir)" || exit 0; \
- files=`for p in $$list; do echo "$$p"; done | \
- sed -e 's,.*/,,;$(transform)'`; \
- dir='$(DESTDIR)$(bindir)'; $(am__uninstall_files_from_dir)
-
-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)/gjdoc-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@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@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@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
-@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@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@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@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@ $(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@ $(am__mv) $(DEPDIR)/gappletviewer-toolwrapper.Tpo $(DEPDIR)/gappletviewer-toolwrapper.Po
-@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@ $(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@ $(am__mv) $(DEPDIR)/gappletviewer-toolwrapper.Tpo $(DEPDIR)/gappletviewer-toolwrapper.Po
-@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@ $(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@ $(am__mv) $(DEPDIR)/gjar-toolwrapper.Tpo $(DEPDIR)/gjar-toolwrapper.Po
-@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@ $(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@ $(am__mv) $(DEPDIR)/gjar-toolwrapper.Tpo $(DEPDIR)/gjar-toolwrapper.Po
-@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@ $(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@ $(am__mv) $(DEPDIR)/gjarsigner-toolwrapper.Tpo $(DEPDIR)/gjarsigner-toolwrapper.Po
-@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@ $(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@ $(am__mv) $(DEPDIR)/gjarsigner-toolwrapper.Tpo $(DEPDIR)/gjarsigner-toolwrapper.Po
-@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@ $(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@ $(am__mv) $(DEPDIR)/gjavah-toolwrapper.Tpo $(DEPDIR)/gjavah-toolwrapper.Po
-@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@ $(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@ $(am__mv) $(DEPDIR)/gjavah-toolwrapper.Tpo $(DEPDIR)/gjavah-toolwrapper.Po
-@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`
-
-gjdoc-toolwrapper.o: toolwrapper.c
-@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gjdoc_CFLAGS) $(CFLAGS) -MT gjdoc-toolwrapper.o -MD -MP -MF $(DEPDIR)/gjdoc-toolwrapper.Tpo -c -o gjdoc-toolwrapper.o `test -f 'toolwrapper.c' || echo '$(srcdir)/'`toolwrapper.c
-@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/gjdoc-toolwrapper.Tpo $(DEPDIR)/gjdoc-toolwrapper.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='toolwrapper.c' object='gjdoc-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) $(gjdoc_CFLAGS) $(CFLAGS) -c -o gjdoc-toolwrapper.o `test -f 'toolwrapper.c' || echo '$(srcdir)/'`toolwrapper.c
-
-gjdoc-toolwrapper.obj: toolwrapper.c
-@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gjdoc_CFLAGS) $(CFLAGS) -MT gjdoc-toolwrapper.obj -MD -MP -MF $(DEPDIR)/gjdoc-toolwrapper.Tpo -c -o gjdoc-toolwrapper.obj `if test -f 'toolwrapper.c'; then $(CYGPATH_W) 'toolwrapper.c'; else $(CYGPATH_W) '$(srcdir)/toolwrapper.c'; fi`
-@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/gjdoc-toolwrapper.Tpo $(DEPDIR)/gjdoc-toolwrapper.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='toolwrapper.c' object='gjdoc-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) $(gjdoc_CFLAGS) $(CFLAGS) -c -o gjdoc-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@ $(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@ $(am__mv) $(DEPDIR)/gkeytool-toolwrapper.Tpo $(DEPDIR)/gkeytool-toolwrapper.Po
-@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@ $(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@ $(am__mv) $(DEPDIR)/gkeytool-toolwrapper.Tpo $(DEPDIR)/gkeytool-toolwrapper.Po
-@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@ $(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@ $(am__mv) $(DEPDIR)/gnative2ascii-toolwrapper.Tpo $(DEPDIR)/gnative2ascii-toolwrapper.Po
-@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@ $(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@ $(am__mv) $(DEPDIR)/gnative2ascii-toolwrapper.Tpo $(DEPDIR)/gnative2ascii-toolwrapper.Po
-@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@ $(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@ $(am__mv) $(DEPDIR)/gorbd-toolwrapper.Tpo $(DEPDIR)/gorbd-toolwrapper.Po
-@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@ $(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@ $(am__mv) $(DEPDIR)/gorbd-toolwrapper.Tpo $(DEPDIR)/gorbd-toolwrapper.Po
-@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@ $(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@ $(am__mv) $(DEPDIR)/grmic-toolwrapper.Tpo $(DEPDIR)/grmic-toolwrapper.Po
-@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@ $(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@ $(am__mv) $(DEPDIR)/grmic-toolwrapper.Tpo $(DEPDIR)/grmic-toolwrapper.Po
-@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@ $(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@ $(am__mv) $(DEPDIR)/grmid-toolwrapper.Tpo $(DEPDIR)/grmid-toolwrapper.Po
-@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@ $(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@ $(am__mv) $(DEPDIR)/grmid-toolwrapper.Tpo $(DEPDIR)/grmid-toolwrapper.Po
-@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@ $(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@ $(am__mv) $(DEPDIR)/grmiregistry-toolwrapper.Tpo $(DEPDIR)/grmiregistry-toolwrapper.Po
-@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@ $(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@ $(am__mv) $(DEPDIR)/grmiregistry-toolwrapper.Tpo $(DEPDIR)/grmiregistry-toolwrapper.Po
-@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@ $(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@ $(am__mv) $(DEPDIR)/gserialver-toolwrapper.Tpo $(DEPDIR)/gserialver-toolwrapper.Po
-@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@ $(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@ $(am__mv) $(DEPDIR)/gserialver-toolwrapper.Tpo $(DEPDIR)/gserialver-toolwrapper.Po
-@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@ $(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@ $(am__mv) $(DEPDIR)/gtnameserv-toolwrapper.Tpo $(DEPDIR)/gtnameserv-toolwrapper.Po
-@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@ $(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@ $(am__mv) $(DEPDIR)/gtnameserv-toolwrapper.Tpo $(DEPDIR)/gtnameserv-toolwrapper.Po
-@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
-
-clean-libtool:
- -rm -rf .libs _libs
-
-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; nonempty = 1; } \
- END { if (nonempty) { for (i in files) print i; }; }'`; \
- mkid -fID $$unique
-tags: TAGS
-
-TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
- set x; \
- 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; nonempty = 1; } \
- END { if (nonempty) { for (i in files) print i; }; }'`; \
- shift; \
- if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
- test -n "$$unique" || unique=$$empty_fix; \
- if test $$# -gt 0; then \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- "$$@" $$unique; \
- else \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- $$unique; \
- fi; \
- fi
-ctags: CTAGS
-CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
- 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; nonempty = 1; } \
- END { if (nonempty) { for (i in files) print i; }; }'`; \
- test -z "$(CTAGS_ARGS)$$unique" \
- || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
- $$unique
-
-GTAGS:
- here=`$(am__cd) $(top_builddir) && pwd` \
- && $(am__cd) $(top_srcdir) \
- && gtags -i $(GTAGS_ARGS) "$$here"
-
-distclean-tags:
- -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-check-am: all-am
-check: $(BUILT_SOURCES)
- $(MAKE) $(AM_MAKEFLAGS) check-am
-all-am: Makefile $(PROGRAMS) $(SCRIPTS) $(DATA)
-installdirs:
- for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(bindir)"; do \
- test -z "$$dir" || $(MKDIR_P) "$$dir"; \
- done
-install: $(BUILT_SOURCES)
- $(MAKE) $(AM_MAKEFLAGS) 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:
- if test -z '$(STRIP)'; then \
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- install; \
- else \
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
- fi
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
- -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
- -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-
-maintainer-clean-generic:
- @echo "This command is intended for maintainers to use"
- @echo "it deletes files that may require special tools to rebuild."
- -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
-clean: clean-am
-
-clean-am: clean-binPROGRAMS clean-generic clean-libtool clean-local \
- clean-noinstPROGRAMS mostlyclean-am
-
-distclean: distclean-am
- -rm -rf ./$(DEPDIR)
- -rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic \
- distclean-tags
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-html-am:
-
-info: info-am
-
-info-am:
-
-install-data-am:
-
-install-dvi: install-dvi-am
-
-install-dvi-am:
-
-install-exec-am: install-binPROGRAMS install-binSCRIPTS
-
-install-html: install-html-am
-
-install-html-am:
-
-install-info: install-info-am
-
-install-info-am:
-
-install-man:
-
-install-pdf: install-pdf-am
-
-install-pdf-am:
-
-install-ps: install-ps-am
-
-install-ps-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-compile mostlyclean-generic \
- mostlyclean-libtool
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am: uninstall-binPROGRAMS uninstall-binSCRIPTS
-
-.MAKE: all check install install-am install-strip
-
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \
- clean-generic clean-libtool clean-local clean-noinstPROGRAMS \
- ctags distclean distclean-compile distclean-generic \
- distclean-libtool distclean-tags dvi dvi-am html html-am info \
- info-am install install-am install-binPROGRAMS \
- install-binSCRIPTS install-data install-data-am install-dvi \
- install-dvi-am install-exec install-exec-am install-html \
- install-html-am install-info install-info-am install-man \
- install-pdf install-pdf-am install-ps install-ps-am \
- 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 tags uninstall uninstall-am \
- uninstall-binPROGRAMS uninstall-binSCRIPTS
-
-
-# Make sure everything is included in the distribution.
-dist-hook:
- srcdir_cnt=`echo $(srcdir) | wc -c`; \
- for file in $(ALL_TOOLS_FILES); do \
- f=`echo $$file | cut -c$$srcdir_cnt-`; \
- fdir=`dirname $$f`; \
- if test ! -d $(distdir)/$$fdir; then \
- echo "$(makeinstalldirs) $(distdir)/$$fdir"; \
- $(mkinstalldirs) $(distdir)/$$fdir; \
- fi; \
- echo "cp -p $$file $(distdir)/$$f"; \
- if ! cp -p $$file $(distdir)/$$f; then \
- exit -1 ; \
- fi ; \
- done
-
-# To generate the example zip just depend on the sources and ignore
-# the class files. Always regenerate all .class files and remove them
-# immediately. And copy the template files we use to the classes dir
-# so they get also included.
-$(TOOLS_ZIP): $(ALL_TOOLS_FILES)
-@CREATE_GJDOC_PARSER_TRUE@@CREATE_GJDOC_TRUE@@JAVA_MAINTAINER_MODE_TRUE@ @mkdir_p@ $(gjdoc_gendir)/gnu/classpath/tools/gjdoc/expr
-@CREATE_GJDOC_PARSER_TRUE@@CREATE_GJDOC_TRUE@@JAVA_MAINTAINER_MODE_TRUE@ $(ANTLR) -o $(gjdoc_gendir)/gnu/classpath/tools/gjdoc/expr/ \
-@CREATE_GJDOC_PARSER_TRUE@@CREATE_GJDOC_TRUE@@JAVA_MAINTAINER_MODE_TRUE@ $(srcdir)/gnu/classpath/tools/gjdoc/expr/java-expression.g
- find $(srcdir)/external/asm -name '*.java' -print > asm.lst
- find $(srcdir)/gnu/classpath/tools \
- $(srcdir)/com/sun/javadoc \
- $(srcdir)/com/sun/tools/doclets \
- $(srcdir)/com/sun/tools/javadoc \
- $(srcdir)/com/sun/tools/javac \
- $(srcdir)/com/sun/tools/javah \
- $(srcdir)/sun/rmi/rmic \
- $(GJDOC_EX) \
- -name '*.java' -print > classes.lst
- if [ -f $(top_builddir)/../vm-tools-packages ]; then \
- : > vm-tools.lst; \
- for pkg in `cat $(top_builddir)/../vm-tools-packages`; do \
- $(FIND) $(top_srcdir)/../$$pkg -follow -name '*.java' -print >> vm-tools.lst; \
- done \
- else \
- echo -n > vm-tools.lst; \
- fi
- cat classes.lst asm.lst vm-tools.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) $(USE_JAVAC_FLAGS) -g -d $(srcdir)/classes @classes.lst @vm-tools.lst
- @list=`cd $(srcdir)/resource && find gnu/classpath/tools com/sun/tools/javac \
- sun/rmi/rmic $(GJDOC_EX) -name \*.properties -print -o -name \*.jav -print`; \
- for p in $$list; do \
- dirname=classes/`dirname $$p`; \
- if ! test -d "$$dirname"; then @mkdir_p@ "$$dirname"; fi; \
- echo " cp $(srcdir)/resource/$$p classes/$$p"; \
- cp $(srcdir)/resource/$$p classes/$$p; \
- done
- cp -pR $(srcdir)/asm .
- cp -pR $(srcdir)/classes .
- find asm classes -type d -exec chmod u+w \{\} \;
- if [ -d asm/.svn ]; then \
- find asm classes -depth -type d -name .svn -exec rm -rf \{\} \;; \
- fi
-@CREATE_GJDOC_TRUE@ for res in $(gjdoc_resources); do \
-@CREATE_GJDOC_TRUE@ dir=classes/`dirname $$res`; \
-@CREATE_GJDOC_TRUE@ if ! test -d "$$dir"; then @mkdir_p@ "$$dir"; fi; \
-@CREATE_GJDOC_TRUE@ echo " cp $(srcdir)/resource/gnu/classpath/tools/gjdoc/$$res classes/$$res"; \
-@CREATE_GJDOC_TRUE@ cp $(srcdir)/resource/gnu/classpath/tools/gjdoc/$$res classes/$$res; \
-@CREATE_GJDOC_TRUE@ done
-
- (cd classes; \
- $(CREATE_TOOLS_ZIP); \
- cd ..)
- (cd asm; \
- $(UPDATE_TOOLS_ZIP); \
- 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 classes.lst asm asm.lst all-classes.lst
-@CREATE_GJDOC_PARSER_TRUE@ rm -rf $(gjdoc_gendir)
-
-# FIXME: remove this when GNU Classpath includes a bootstrap VM.
-installcheck-binSCRIPTS:
- :
-
-# 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/tools/README b/libjava/classpath/tools/README
deleted file mode 100644
index dc049d3..0000000
--- a/libjava/classpath/tools/README
+++ /dev/null
@@ -1,58 +0,0 @@
-The GNU Classpath tools are stored in the tools.zip. They can be invoked by
-putting this archive into classpath and specifying the tool main class as the
-class to run (parameters usually follow). The current release contains the
-following tools:
-
-== GIOP tools ==
-
-GIOP tools are used for creating the applications that use GIOP communication
-protocol. It provides necessary support for org.omg.* and javax.rmi.*
-packages.
-
-All GIOP tools support the --help option, for instance:
- java -cp tools.zip gnu.classpath.tools.giop.IorParser --help
-
-The list of the currently available GIOP tools (name matches the main
-class in gnu.classpath.tools.giop package):
-
-* 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).
-
-== RMI tools ==
-
-RMI tools provide support for java.rmi package. All tools support
-the --help key by printing more information, for instance:
- java -cp tools.zip gnu.classpath.tools.rmi.RMIC --help
-
-The list of the currently available RMI tools (name matches the main tool class
-in gnu.classpath.tools.rmi package):
-
-* RMIC - RMI stub and tie source code generator (complements
- the ASM based bytecode generator in the separate
- cp-tools project). This tool is only needed for
- research and backward-compatibile applications, as
- Classpath supports the 1.5 feature to replace such
- stubs by proxy classes.
-* REGISTRY - The persistent RMI naming service.
-* RMID - The persistent RMI activation daemon, supports the
- java.rmi.activation package.
-
-== Security tools ==
-
-Security tools (currently) are used for signing and verifying JAR files
-as well as (planned) generating and managing cryptographic tokens and
-credentials.
-
-The list of individual tools, the name of their main class that should be
-invoked by the Java launcher, and a summary of what they provide follows:
-
-* jarsigner gnu.classpath.tools.jarsigner.Main
- A drop-in replacement for the "jarsigner" tool.
-
-
diff --git a/libjava/classpath/tools/appletviewer.in b/libjava/classpath/tools/appletviewer.in
deleted file mode 100644
index 81e39ad..0000000
--- a/libjava/classpath/tools/appletviewer.in
+++ /dev/null
@@ -1,46 +0,0 @@
-#!/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 appletviewer tool.
-##
-
-prefix=@prefix@
-tools_dir=@datadir@/@PACKAGE@
-tools_cp=${tools_dir}/tools.zip
-
-exec @VM_BINARY@ -Xbootclasspath/p:"${tools_cp}" gnu.classpath.tools.appletviewer.Main $@
diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/AnnotationVisitor.class b/libjava/classpath/tools/asm/org/objectweb/asm/AnnotationVisitor.class
deleted file mode 100644
index acb0481..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/AnnotationVisitor.class and /dev/null differ
diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/AnnotationWriter.class b/libjava/classpath/tools/asm/org/objectweb/asm/AnnotationWriter.class
deleted file mode 100644
index 69dd3cf..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/AnnotationWriter.class and /dev/null differ
diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/Attribute.class b/libjava/classpath/tools/asm/org/objectweb/asm/Attribute.class
deleted file mode 100644
index d9bb13a..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/Attribute.class and /dev/null differ
diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/ByteVector.class b/libjava/classpath/tools/asm/org/objectweb/asm/ByteVector.class
deleted file mode 100644
index a7b9ad7..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/ByteVector.class and /dev/null differ
diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/ClassAdapter.class b/libjava/classpath/tools/asm/org/objectweb/asm/ClassAdapter.class
deleted file mode 100644
index 81a4025..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/ClassAdapter.class and /dev/null differ
diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/ClassReader.class b/libjava/classpath/tools/asm/org/objectweb/asm/ClassReader.class
deleted file mode 100644
index ee5ea75..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/ClassReader.class and /dev/null differ
diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/ClassVisitor.class b/libjava/classpath/tools/asm/org/objectweb/asm/ClassVisitor.class
deleted file mode 100644
index f4345b3..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/ClassVisitor.class and /dev/null differ
diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/ClassWriter.class b/libjava/classpath/tools/asm/org/objectweb/asm/ClassWriter.class
deleted file mode 100644
index 07de7fc..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/ClassWriter.class and /dev/null differ
diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/Edge.class b/libjava/classpath/tools/asm/org/objectweb/asm/Edge.class
deleted file mode 100644
index 2cf713b..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/Edge.class and /dev/null differ
diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/FieldVisitor.class b/libjava/classpath/tools/asm/org/objectweb/asm/FieldVisitor.class
deleted file mode 100644
index 5f29c7b..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/FieldVisitor.class and /dev/null differ
diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/FieldWriter.class b/libjava/classpath/tools/asm/org/objectweb/asm/FieldWriter.class
deleted file mode 100644
index b316b7b..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/FieldWriter.class and /dev/null differ
diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/Handler.class b/libjava/classpath/tools/asm/org/objectweb/asm/Handler.class
deleted file mode 100644
index 1cbcd3f..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/Handler.class and /dev/null differ
diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/Item.class b/libjava/classpath/tools/asm/org/objectweb/asm/Item.class
deleted file mode 100644
index 5c0a0d0..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/Item.class and /dev/null differ
diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/Label.class b/libjava/classpath/tools/asm/org/objectweb/asm/Label.class
deleted file mode 100644
index 0bd982b..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/Label.class and /dev/null differ
diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/MethodAdapter.class b/libjava/classpath/tools/asm/org/objectweb/asm/MethodAdapter.class
deleted file mode 100644
index 3521003..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/MethodAdapter.class and /dev/null differ
diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/MethodVisitor.class b/libjava/classpath/tools/asm/org/objectweb/asm/MethodVisitor.class
deleted file mode 100644
index d4bdd8f..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/MethodVisitor.class and /dev/null differ
diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/MethodWriter.class b/libjava/classpath/tools/asm/org/objectweb/asm/MethodWriter.class
deleted file mode 100644
index e006aa4..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/MethodWriter.class and /dev/null differ
diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/Opcodes.class b/libjava/classpath/tools/asm/org/objectweb/asm/Opcodes.class
deleted file mode 100644
index 5994911..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/Opcodes.class and /dev/null differ
diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/Type.class b/libjava/classpath/tools/asm/org/objectweb/asm/Type.class
deleted file mode 100644
index e96ca26..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/Type.class and /dev/null differ
diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/attrs/StackMapAttribute.class b/libjava/classpath/tools/asm/org/objectweb/asm/attrs/StackMapAttribute.class
deleted file mode 100644
index 20bda68..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/attrs/StackMapAttribute.class and /dev/null differ
diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/attrs/StackMapFrame.class b/libjava/classpath/tools/asm/org/objectweb/asm/attrs/StackMapFrame.class
deleted file mode 100644
index 0305d04..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/attrs/StackMapFrame.class and /dev/null differ
diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/attrs/StackMapTableAttribute.class b/libjava/classpath/tools/asm/org/objectweb/asm/attrs/StackMapTableAttribute.class
deleted file mode 100644
index 708ee09..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/attrs/StackMapTableAttribute.class and /dev/null differ
diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/attrs/StackMapType.class b/libjava/classpath/tools/asm/org/objectweb/asm/attrs/StackMapType.class
deleted file mode 100644
index ea6999b..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/attrs/StackMapType.class and /dev/null differ
diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/commons/AdviceAdapter.class b/libjava/classpath/tools/asm/org/objectweb/asm/commons/AdviceAdapter.class
deleted file mode 100644
index 0f7b70a..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/commons/AdviceAdapter.class and /dev/null differ
diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/commons/EmptyVisitor.class b/libjava/classpath/tools/asm/org/objectweb/asm/commons/EmptyVisitor.class
deleted file mode 100644
index 47aa4b8..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/commons/EmptyVisitor.class and /dev/null differ
diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/commons/GeneratorAdapter.class b/libjava/classpath/tools/asm/org/objectweb/asm/commons/GeneratorAdapter.class
deleted file mode 100644
index 11a2f13..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/commons/GeneratorAdapter.class and /dev/null differ
diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/commons/LocalVariablesSorter.class b/libjava/classpath/tools/asm/org/objectweb/asm/commons/LocalVariablesSorter.class
deleted file mode 100644
index de1a9db..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/commons/LocalVariablesSorter.class and /dev/null differ
diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/commons/Method.class b/libjava/classpath/tools/asm/org/objectweb/asm/commons/Method.class
deleted file mode 100644
index 508cfb5..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/commons/Method.class and /dev/null differ
diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/commons/SerialVersionUIDAdder$Item.class b/libjava/classpath/tools/asm/org/objectweb/asm/commons/SerialVersionUIDAdder$Item.class
deleted file mode 100644
index 9048fab..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/commons/SerialVersionUIDAdder$Item.class and /dev/null differ
diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/commons/SerialVersionUIDAdder.class b/libjava/classpath/tools/asm/org/objectweb/asm/commons/SerialVersionUIDAdder.class
deleted file mode 100644
index ae5f315..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/commons/SerialVersionUIDAdder.class and /dev/null differ
diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/commons/StaticInitMerger.class b/libjava/classpath/tools/asm/org/objectweb/asm/commons/StaticInitMerger.class
deleted file mode 100644
index 53614d1..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/commons/StaticInitMerger.class and /dev/null differ
diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/commons/TableSwitchGenerator.class b/libjava/classpath/tools/asm/org/objectweb/asm/commons/TableSwitchGenerator.class
deleted file mode 100644
index 3da3b09..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/commons/TableSwitchGenerator.class and /dev/null differ
diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/optimizer/AnnotationConstantsCollector.class b/libjava/classpath/tools/asm/org/objectweb/asm/optimizer/AnnotationConstantsCollector.class
deleted file mode 100644
index ce439d2..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/optimizer/AnnotationConstantsCollector.class and /dev/null differ
diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/optimizer/ClassConstantsCollector.class b/libjava/classpath/tools/asm/org/objectweb/asm/optimizer/ClassConstantsCollector.class
deleted file mode 100644
index 5f652ce..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/optimizer/ClassConstantsCollector.class and /dev/null differ
diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/optimizer/ClassOptimizer.class b/libjava/classpath/tools/asm/org/objectweb/asm/optimizer/ClassOptimizer.class
deleted file mode 100644
index d0510b6..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/optimizer/ClassOptimizer.class and /dev/null differ
diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/optimizer/Constant.class b/libjava/classpath/tools/asm/org/objectweb/asm/optimizer/Constant.class
deleted file mode 100644
index c9eb21e..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/optimizer/Constant.class and /dev/null differ
diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/optimizer/ConstantPool.class b/libjava/classpath/tools/asm/org/objectweb/asm/optimizer/ConstantPool.class
deleted file mode 100644
index a23ba65..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/optimizer/ConstantPool.class and /dev/null differ
diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/optimizer/FieldConstantsCollector.class b/libjava/classpath/tools/asm/org/objectweb/asm/optimizer/FieldConstantsCollector.class
deleted file mode 100644
index 57a0a12..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/optimizer/FieldConstantsCollector.class and /dev/null differ
diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/optimizer/JarOptimizer.class b/libjava/classpath/tools/asm/org/objectweb/asm/optimizer/JarOptimizer.class
deleted file mode 100644
index 0d6c4bd..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/optimizer/JarOptimizer.class and /dev/null differ
diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/optimizer/MethodConstantsCollector.class b/libjava/classpath/tools/asm/org/objectweb/asm/optimizer/MethodConstantsCollector.class
deleted file mode 100644
index 11921a7..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/optimizer/MethodConstantsCollector.class and /dev/null differ
diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/optimizer/MethodOptimizer.class b/libjava/classpath/tools/asm/org/objectweb/asm/optimizer/MethodOptimizer.class
deleted file mode 100644
index 123484b..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/optimizer/MethodOptimizer.class and /dev/null differ
diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/optimizer/NameMapping.class b/libjava/classpath/tools/asm/org/objectweb/asm/optimizer/NameMapping.class
deleted file mode 100644
index e7ed57e..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/optimizer/NameMapping.class and /dev/null differ
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
deleted file mode 100644
index d03748d..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/optimizer/Shrinker$ConstantComparator.class and /dev/null differ
diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/optimizer/Shrinker.class b/libjava/classpath/tools/asm/org/objectweb/asm/optimizer/Shrinker.class
deleted file mode 100644
index bb87a28..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/optimizer/Shrinker.class and /dev/null differ
diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/signature/SignatureReader.class b/libjava/classpath/tools/asm/org/objectweb/asm/signature/SignatureReader.class
deleted file mode 100644
index b3c4b9d..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/signature/SignatureReader.class and /dev/null differ
diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/signature/SignatureVisitor.class b/libjava/classpath/tools/asm/org/objectweb/asm/signature/SignatureVisitor.class
deleted file mode 100644
index 98826f1..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/signature/SignatureVisitor.class and /dev/null differ
diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/signature/SignatureWriter.class b/libjava/classpath/tools/asm/org/objectweb/asm/signature/SignatureWriter.class
deleted file mode 100644
index ec5f527..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/signature/SignatureWriter.class and /dev/null differ
diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/tree/AbstractInsnNode.class b/libjava/classpath/tools/asm/org/objectweb/asm/tree/AbstractInsnNode.class
deleted file mode 100644
index 1fee9f6..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/tree/AbstractInsnNode.class and /dev/null differ
diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/tree/AnnotationNode.class b/libjava/classpath/tools/asm/org/objectweb/asm/tree/AnnotationNode.class
deleted file mode 100644
index 4eee59d..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/tree/AnnotationNode.class and /dev/null differ
diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/tree/ClassNode.class b/libjava/classpath/tools/asm/org/objectweb/asm/tree/ClassNode.class
deleted file mode 100644
index 975cee2..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/tree/ClassNode.class and /dev/null differ
diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/tree/FieldInsnNode.class b/libjava/classpath/tools/asm/org/objectweb/asm/tree/FieldInsnNode.class
deleted file mode 100644
index ef9f743..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/tree/FieldInsnNode.class and /dev/null differ
diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/tree/FieldNode.class b/libjava/classpath/tools/asm/org/objectweb/asm/tree/FieldNode.class
deleted file mode 100644
index 92797f6..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/tree/FieldNode.class and /dev/null differ
diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/tree/IincInsnNode.class b/libjava/classpath/tools/asm/org/objectweb/asm/tree/IincInsnNode.class
deleted file mode 100644
index 10428be..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/tree/IincInsnNode.class and /dev/null differ
diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/tree/InnerClassNode.class b/libjava/classpath/tools/asm/org/objectweb/asm/tree/InnerClassNode.class
deleted file mode 100644
index 35008f4..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/tree/InnerClassNode.class and /dev/null differ
diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/tree/InsnNode.class b/libjava/classpath/tools/asm/org/objectweb/asm/tree/InsnNode.class
deleted file mode 100644
index 0eb12d9..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/tree/InsnNode.class and /dev/null differ
diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/tree/IntInsnNode.class b/libjava/classpath/tools/asm/org/objectweb/asm/tree/IntInsnNode.class
deleted file mode 100644
index f89b8fd..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/tree/IntInsnNode.class and /dev/null differ
diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/tree/JumpInsnNode.class b/libjava/classpath/tools/asm/org/objectweb/asm/tree/JumpInsnNode.class
deleted file mode 100644
index fc6e783..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/tree/JumpInsnNode.class and /dev/null differ
diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/tree/LabelNode.class b/libjava/classpath/tools/asm/org/objectweb/asm/tree/LabelNode.class
deleted file mode 100644
index 2b375e4..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/tree/LabelNode.class and /dev/null differ
diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/tree/LdcInsnNode.class b/libjava/classpath/tools/asm/org/objectweb/asm/tree/LdcInsnNode.class
deleted file mode 100644
index 97a2e6d..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/tree/LdcInsnNode.class and /dev/null differ
diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/tree/LineNumberNode.class b/libjava/classpath/tools/asm/org/objectweb/asm/tree/LineNumberNode.class
deleted file mode 100644
index 5b0abc6..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/tree/LineNumberNode.class and /dev/null differ
diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/tree/LocalVariableNode.class b/libjava/classpath/tools/asm/org/objectweb/asm/tree/LocalVariableNode.class
deleted file mode 100644
index 7da757c..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/tree/LocalVariableNode.class and /dev/null differ
diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/tree/LookupSwitchInsnNode.class b/libjava/classpath/tools/asm/org/objectweb/asm/tree/LookupSwitchInsnNode.class
deleted file mode 100644
index e307436..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/tree/LookupSwitchInsnNode.class and /dev/null differ
diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/tree/MemberNode.class b/libjava/classpath/tools/asm/org/objectweb/asm/tree/MemberNode.class
deleted file mode 100644
index 541ac89..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/tree/MemberNode.class and /dev/null differ
diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/tree/MethodInsnNode.class b/libjava/classpath/tools/asm/org/objectweb/asm/tree/MethodInsnNode.class
deleted file mode 100644
index 900d812..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/tree/MethodInsnNode.class and /dev/null differ
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
deleted file mode 100644
index 576603d..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/tree/MethodNode$1.class and /dev/null differ
diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/tree/MethodNode.class b/libjava/classpath/tools/asm/org/objectweb/asm/tree/MethodNode.class
deleted file mode 100644
index dc6a563..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/tree/MethodNode.class and /dev/null differ
diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/tree/MultiANewArrayInsnNode.class b/libjava/classpath/tools/asm/org/objectweb/asm/tree/MultiANewArrayInsnNode.class
deleted file mode 100644
index eff4e98..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/tree/MultiANewArrayInsnNode.class and /dev/null differ
diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/tree/TableSwitchInsnNode.class b/libjava/classpath/tools/asm/org/objectweb/asm/tree/TableSwitchInsnNode.class
deleted file mode 100644
index b4626e8..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/tree/TableSwitchInsnNode.class and /dev/null differ
diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/tree/TryCatchBlockNode.class b/libjava/classpath/tools/asm/org/objectweb/asm/tree/TryCatchBlockNode.class
deleted file mode 100644
index ba882b3..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/tree/TryCatchBlockNode.class and /dev/null differ
diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/tree/TypeInsnNode.class b/libjava/classpath/tools/asm/org/objectweb/asm/tree/TypeInsnNode.class
deleted file mode 100644
index 577ff0a..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/tree/TypeInsnNode.class and /dev/null differ
diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/tree/VarInsnNode.class b/libjava/classpath/tools/asm/org/objectweb/asm/tree/VarInsnNode.class
deleted file mode 100644
index a86ac05..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/tree/VarInsnNode.class and /dev/null differ
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
deleted file mode 100644
index aa54fd6..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/tree/analysis/Analyzer.class and /dev/null differ
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
deleted file mode 100644
index 1c0e6b1..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/tree/analysis/AnalyzerException.class and /dev/null differ
diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/tree/analysis/BasicInterpreter.class b/libjava/classpath/tools/asm/org/objectweb/asm/tree/analysis/BasicInterpreter.class
deleted file mode 100644
index e0d2bd0..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/tree/analysis/BasicInterpreter.class and /dev/null differ
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
deleted file mode 100644
index 303e155..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/tree/analysis/BasicValue.class and /dev/null differ
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
deleted file mode 100644
index fd5f938..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/tree/analysis/BasicVerifier.class and /dev/null differ
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
deleted file mode 100644
index c87cf33..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/tree/analysis/DataflowInterpreter.class and /dev/null differ
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
deleted file mode 100644
index 41bb76b..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/tree/analysis/DataflowValue.class and /dev/null differ
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
deleted file mode 100644
index c626859..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/tree/analysis/Frame.class and /dev/null differ
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
deleted file mode 100644
index 467749a..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/tree/analysis/IntMap.class and /dev/null differ
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
deleted file mode 100644
index a1afe42..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/tree/analysis/Interpreter.class and /dev/null differ
diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/tree/analysis/SimpleVerifier.class b/libjava/classpath/tools/asm/org/objectweb/asm/tree/analysis/SimpleVerifier.class
deleted file mode 100644
index 4c3d7bc..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/tree/analysis/SimpleVerifier.class and /dev/null differ
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
deleted file mode 100644
index be09934..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/tree/analysis/SmallSet.class and /dev/null differ
diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/tree/analysis/Subroutine.class b/libjava/classpath/tools/asm/org/objectweb/asm/tree/analysis/Subroutine.class
deleted file mode 100644
index 3767ead..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/tree/analysis/Subroutine.class and /dev/null differ
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
deleted file mode 100644
index 21de3a9..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/tree/analysis/Value.class and /dev/null differ
diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/util/ASMifierAbstractVisitor.class b/libjava/classpath/tools/asm/org/objectweb/asm/util/ASMifierAbstractVisitor.class
deleted file mode 100644
index a819e6a..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/util/ASMifierAbstractVisitor.class and /dev/null differ
diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/util/ASMifierAnnotationVisitor.class b/libjava/classpath/tools/asm/org/objectweb/asm/util/ASMifierAnnotationVisitor.class
deleted file mode 100644
index 7fe6b7e..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/util/ASMifierAnnotationVisitor.class and /dev/null differ
diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/util/ASMifierClassVisitor.class b/libjava/classpath/tools/asm/org/objectweb/asm/util/ASMifierClassVisitor.class
deleted file mode 100644
index 60cba83..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/util/ASMifierClassVisitor.class and /dev/null differ
diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/util/ASMifierFieldVisitor.class b/libjava/classpath/tools/asm/org/objectweb/asm/util/ASMifierFieldVisitor.class
deleted file mode 100644
index d988514..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/util/ASMifierFieldVisitor.class and /dev/null differ
diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/util/ASMifierMethodVisitor.class b/libjava/classpath/tools/asm/org/objectweb/asm/util/ASMifierMethodVisitor.class
deleted file mode 100644
index 43b18b7..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/util/ASMifierMethodVisitor.class and /dev/null differ
diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/util/AbstractVisitor.class b/libjava/classpath/tools/asm/org/objectweb/asm/util/AbstractVisitor.class
deleted file mode 100644
index a9aff21..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/util/AbstractVisitor.class and /dev/null differ
diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/util/CheckAnnotationAdapter.class b/libjava/classpath/tools/asm/org/objectweb/asm/util/CheckAnnotationAdapter.class
deleted file mode 100644
index b965053..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/util/CheckAnnotationAdapter.class and /dev/null differ
diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/util/CheckClassAdapter.class b/libjava/classpath/tools/asm/org/objectweb/asm/util/CheckClassAdapter.class
deleted file mode 100644
index d5b555d..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/util/CheckClassAdapter.class and /dev/null differ
diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/util/CheckFieldAdapter.class b/libjava/classpath/tools/asm/org/objectweb/asm/util/CheckFieldAdapter.class
deleted file mode 100644
index db4b4b0..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/util/CheckFieldAdapter.class and /dev/null differ
diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/util/CheckMethodAdapter.class b/libjava/classpath/tools/asm/org/objectweb/asm/util/CheckMethodAdapter.class
deleted file mode 100644
index 57e63c0..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/util/CheckMethodAdapter.class and /dev/null differ
diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/util/TraceAbstractVisitor.class b/libjava/classpath/tools/asm/org/objectweb/asm/util/TraceAbstractVisitor.class
deleted file mode 100644
index 0f103e2..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/util/TraceAbstractVisitor.class and /dev/null differ
diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/util/TraceAnnotationVisitor.class b/libjava/classpath/tools/asm/org/objectweb/asm/util/TraceAnnotationVisitor.class
deleted file mode 100644
index 50fc265..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/util/TraceAnnotationVisitor.class and /dev/null differ
diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/util/TraceClassVisitor.class b/libjava/classpath/tools/asm/org/objectweb/asm/util/TraceClassVisitor.class
deleted file mode 100644
index 93ef1ac..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/util/TraceClassVisitor.class and /dev/null differ
diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/util/TraceFieldVisitor.class b/libjava/classpath/tools/asm/org/objectweb/asm/util/TraceFieldVisitor.class
deleted file mode 100644
index 0035c01..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/util/TraceFieldVisitor.class and /dev/null differ
diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/util/TraceMethodVisitor.class b/libjava/classpath/tools/asm/org/objectweb/asm/util/TraceMethodVisitor.class
deleted file mode 100644
index ffd4f26..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/util/TraceMethodVisitor.class and /dev/null differ
diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/util/TraceSignatureVisitor.class b/libjava/classpath/tools/asm/org/objectweb/asm/util/TraceSignatureVisitor.class
deleted file mode 100644
index b045ab5..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/util/TraceSignatureVisitor.class and /dev/null differ
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
deleted file mode 100644
index ae2a692..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/util/attrs/ASMStackMapAttribute.class and /dev/null differ
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
deleted file mode 100644
index f69d0d4..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/util/attrs/ASMStackMapTableAttribute.class and /dev/null differ
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
deleted file mode 100644
index f1556bd..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/util/attrs/ASMifiable.class and /dev/null differ
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
deleted file mode 100644
index bfd9350..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/util/attrs/Traceable.class and /dev/null differ
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
deleted file mode 100644
index 14eb112..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$AnnotationDefaultRule.class and /dev/null differ
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
deleted file mode 100644
index 9d4d403..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$AnnotationParameterRule.class and /dev/null differ
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
deleted file mode 100644
index 22ae1b9..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$AnnotationRule.class and /dev/null differ
diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$AnnotationValueAnnotationRule.class b/libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$AnnotationValueAnnotationRule.class
deleted file mode 100644
index 66ddcd1..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$AnnotationValueAnnotationRule.class and /dev/null differ
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
deleted file mode 100644
index 7b98456..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$AnnotationValueArrayRule.class and /dev/null differ
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
deleted file mode 100644
index 60b4686..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$AnnotationValueEnumRule.class and /dev/null differ
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
deleted file mode 100644
index fe5db3e..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$AnnotationValueRule.class and /dev/null differ
diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$ClassRule.class b/libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$ClassRule.class
deleted file mode 100644
index 202f865..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$ClassRule.class and /dev/null differ
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
deleted file mode 100644
index d703d34..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$ExceptionRule.class and /dev/null differ
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
deleted file mode 100644
index eadc213..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$ExceptionsRule.class and /dev/null differ
diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$FieldRule.class b/libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$FieldRule.class
deleted file mode 100644
index e7191d8..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$FieldRule.class and /dev/null differ
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
deleted file mode 100644
index c0ba92f..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$InnerClassRule.class and /dev/null differ
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
deleted file mode 100644
index dff119a..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$InterfaceRule.class and /dev/null differ
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
deleted file mode 100644
index bbcc997..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$InterfacesRule.class and /dev/null differ
diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$LabelRule.class b/libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$LabelRule.class
deleted file mode 100644
index 0539a07..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$LabelRule.class and /dev/null differ
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
deleted file mode 100644
index 999db69..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$LineNumberRule.class and /dev/null differ
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
deleted file mode 100644
index f011b4c..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$LocalVarRule.class and /dev/null differ
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
deleted file mode 100644
index ebe0196..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$LookupSwitchLabelRule.class and /dev/null differ
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
deleted file mode 100644
index 83fab9d..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$LookupSwitchRule.class and /dev/null differ
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
deleted file mode 100644
index 72fbf45..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$MaxRule.class and /dev/null differ
diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$MethodRule.class b/libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$MethodRule.class
deleted file mode 100644
index 50511f4..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$MethodRule.class and /dev/null differ
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
deleted file mode 100644
index 79606a8..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$Opcode.class and /dev/null differ
diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$OpcodeGroup.class b/libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$OpcodeGroup.class
deleted file mode 100644
index 215db6c..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$OpcodeGroup.class and /dev/null differ
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
deleted file mode 100644
index 510ea53..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$OpcodesRule.class and /dev/null differ
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
deleted file mode 100644
index 6016a57..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$OuterClassRule.class and /dev/null differ
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
deleted file mode 100644
index c420672..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$Rule.class and /dev/null differ
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
deleted file mode 100644
index 0b99b72..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$RuleSet.class and /dev/null differ
diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$SourceRule.class b/libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$SourceRule.class
deleted file mode 100644
index 00edb91..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$SourceRule.class and /dev/null differ
diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$TableSwitchLabelRule.class b/libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$TableSwitchLabelRule.class
deleted file mode 100644
index bc01c17..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$TableSwitchLabelRule.class and /dev/null differ
diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$TableSwitchRule.class b/libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$TableSwitchRule.class
deleted file mode 100644
index 96344f5..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$TableSwitchRule.class and /dev/null differ
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
deleted file mode 100644
index 40121eb..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$TryCatchRule.class and /dev/null differ
diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler.class b/libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler.class
deleted file mode 100644
index 748c37b..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler.class and /dev/null differ
diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/xml/Processor$ASMContentHandlerFactory.class b/libjava/classpath/tools/asm/org/objectweb/asm/xml/Processor$ASMContentHandlerFactory.class
deleted file mode 100644
index ca9c615..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/xml/Processor$ASMContentHandlerFactory.class and /dev/null differ
diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/xml/Processor$ContentHandlerFactory.class b/libjava/classpath/tools/asm/org/objectweb/asm/xml/Processor$ContentHandlerFactory.class
deleted file mode 100644
index db46833..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/xml/Processor$ContentHandlerFactory.class and /dev/null differ
diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/xml/Processor$EntryElement.class b/libjava/classpath/tools/asm/org/objectweb/asm/xml/Processor$EntryElement.class
deleted file mode 100644
index 8f5d5c6..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/xml/Processor$EntryElement.class and /dev/null differ
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
deleted file mode 100644
index 5bfa3b3..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/xml/Processor$InputSlicingHandler.class and /dev/null differ
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
deleted file mode 100644
index 3d77978..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/xml/Processor$OutputSlicingHandler.class and /dev/null differ
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
deleted file mode 100644
index 6abc935..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/xml/Processor$ProtectedInputStream.class and /dev/null differ
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
deleted file mode 100644
index ecf42b6..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/xml/Processor$SAXWriter.class and /dev/null differ
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
deleted file mode 100644
index 916d346..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/xml/Processor$SAXWriterFactory.class and /dev/null differ
diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/xml/Processor$SingleDocElement.class b/libjava/classpath/tools/asm/org/objectweb/asm/xml/Processor$SingleDocElement.class
deleted file mode 100644
index f7587d6..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/xml/Processor$SingleDocElement.class and /dev/null differ
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
deleted file mode 100644
index f9a0800..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/xml/Processor$SubdocumentHandlerFactory.class and /dev/null differ
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
deleted file mode 100644
index efea4d9..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/xml/Processor$TransformerHandlerFactory.class and /dev/null differ
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
deleted file mode 100644
index f383898..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/xml/Processor$ZipEntryElement.class and /dev/null differ
diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/xml/Processor.class b/libjava/classpath/tools/asm/org/objectweb/asm/xml/Processor.class
deleted file mode 100644
index e438d79..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/xml/Processor.class and /dev/null differ
diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/xml/SAXAdapter.class b/libjava/classpath/tools/asm/org/objectweb/asm/xml/SAXAdapter.class
deleted file mode 100644
index f534760..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/xml/SAXAdapter.class and /dev/null differ
diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/xml/SAXAnnotationAdapter.class b/libjava/classpath/tools/asm/org/objectweb/asm/xml/SAXAnnotationAdapter.class
deleted file mode 100644
index ea70304..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/xml/SAXAnnotationAdapter.class and /dev/null differ
diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/xml/SAXClassAdapter.class b/libjava/classpath/tools/asm/org/objectweb/asm/xml/SAXClassAdapter.class
deleted file mode 100644
index 492ee2c..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/xml/SAXClassAdapter.class and /dev/null differ
diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/xml/SAXCodeAdapter.class b/libjava/classpath/tools/asm/org/objectweb/asm/xml/SAXCodeAdapter.class
deleted file mode 100644
index a0656a5..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/xml/SAXCodeAdapter.class and /dev/null differ
diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/xml/SAXFieldAdapter.class b/libjava/classpath/tools/asm/org/objectweb/asm/xml/SAXFieldAdapter.class
deleted file mode 100644
index 7cdae94..0000000
Binary files a/libjava/classpath/tools/asm/org/objectweb/asm/xml/SAXFieldAdapter.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/com/sun/javadoc/ClassDoc.class b/libjava/classpath/tools/classes/com/sun/javadoc/ClassDoc.class
deleted file mode 100644
index 8f36239..0000000
Binary files a/libjava/classpath/tools/classes/com/sun/javadoc/ClassDoc.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/com/sun/javadoc/ConstructorDoc.class b/libjava/classpath/tools/classes/com/sun/javadoc/ConstructorDoc.class
deleted file mode 100644
index e9c2216..0000000
Binary files a/libjava/classpath/tools/classes/com/sun/javadoc/ConstructorDoc.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/com/sun/javadoc/Doc.class b/libjava/classpath/tools/classes/com/sun/javadoc/Doc.class
deleted file mode 100644
index 79882ce..0000000
Binary files a/libjava/classpath/tools/classes/com/sun/javadoc/Doc.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/com/sun/javadoc/DocErrorReporter.class b/libjava/classpath/tools/classes/com/sun/javadoc/DocErrorReporter.class
deleted file mode 100644
index 2dec235..0000000
Binary files a/libjava/classpath/tools/classes/com/sun/javadoc/DocErrorReporter.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/com/sun/javadoc/Doclet.class b/libjava/classpath/tools/classes/com/sun/javadoc/Doclet.class
deleted file mode 100644
index 2def744..0000000
Binary files a/libjava/classpath/tools/classes/com/sun/javadoc/Doclet.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/com/sun/javadoc/ExecutableMemberDoc.class b/libjava/classpath/tools/classes/com/sun/javadoc/ExecutableMemberDoc.class
deleted file mode 100644
index 84c69f1..0000000
Binary files a/libjava/classpath/tools/classes/com/sun/javadoc/ExecutableMemberDoc.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/com/sun/javadoc/FieldDoc.class b/libjava/classpath/tools/classes/com/sun/javadoc/FieldDoc.class
deleted file mode 100644
index da5da74..0000000
Binary files a/libjava/classpath/tools/classes/com/sun/javadoc/FieldDoc.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/com/sun/javadoc/MemberDoc.class b/libjava/classpath/tools/classes/com/sun/javadoc/MemberDoc.class
deleted file mode 100644
index 50b630a..0000000
Binary files a/libjava/classpath/tools/classes/com/sun/javadoc/MemberDoc.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/com/sun/javadoc/MethodDoc.class b/libjava/classpath/tools/classes/com/sun/javadoc/MethodDoc.class
deleted file mode 100644
index 7789f8b..0000000
Binary files a/libjava/classpath/tools/classes/com/sun/javadoc/MethodDoc.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/com/sun/javadoc/PackageDoc.class b/libjava/classpath/tools/classes/com/sun/javadoc/PackageDoc.class
deleted file mode 100644
index ba51efc..0000000
Binary files a/libjava/classpath/tools/classes/com/sun/javadoc/PackageDoc.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/com/sun/javadoc/ParamTag.class b/libjava/classpath/tools/classes/com/sun/javadoc/ParamTag.class
deleted file mode 100644
index c8da529..0000000
Binary files a/libjava/classpath/tools/classes/com/sun/javadoc/ParamTag.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/com/sun/javadoc/Parameter.class b/libjava/classpath/tools/classes/com/sun/javadoc/Parameter.class
deleted file mode 100644
index beff569..0000000
Binary files a/libjava/classpath/tools/classes/com/sun/javadoc/Parameter.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/com/sun/javadoc/ProgramElementDoc.class b/libjava/classpath/tools/classes/com/sun/javadoc/ProgramElementDoc.class
deleted file mode 100644
index 1ec3cbb..0000000
Binary files a/libjava/classpath/tools/classes/com/sun/javadoc/ProgramElementDoc.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/com/sun/javadoc/RootDoc.class b/libjava/classpath/tools/classes/com/sun/javadoc/RootDoc.class
deleted file mode 100644
index 32409f6..0000000
Binary files a/libjava/classpath/tools/classes/com/sun/javadoc/RootDoc.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/com/sun/javadoc/SeeTag.class b/libjava/classpath/tools/classes/com/sun/javadoc/SeeTag.class
deleted file mode 100644
index f55cfde..0000000
Binary files a/libjava/classpath/tools/classes/com/sun/javadoc/SeeTag.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/com/sun/javadoc/SerialFieldTag.class b/libjava/classpath/tools/classes/com/sun/javadoc/SerialFieldTag.class
deleted file mode 100644
index f57ecac..0000000
Binary files a/libjava/classpath/tools/classes/com/sun/javadoc/SerialFieldTag.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/com/sun/javadoc/SourcePosition.class b/libjava/classpath/tools/classes/com/sun/javadoc/SourcePosition.class
deleted file mode 100644
index a282581..0000000
Binary files a/libjava/classpath/tools/classes/com/sun/javadoc/SourcePosition.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/com/sun/javadoc/Tag.class b/libjava/classpath/tools/classes/com/sun/javadoc/Tag.class
deleted file mode 100644
index efeeab1..0000000
Binary files a/libjava/classpath/tools/classes/com/sun/javadoc/Tag.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/com/sun/javadoc/ThrowsTag.class b/libjava/classpath/tools/classes/com/sun/javadoc/ThrowsTag.class
deleted file mode 100644
index 7d69e56..0000000
Binary files a/libjava/classpath/tools/classes/com/sun/javadoc/ThrowsTag.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/com/sun/javadoc/Type.class b/libjava/classpath/tools/classes/com/sun/javadoc/Type.class
deleted file mode 100644
index e264003..0000000
Binary files a/libjava/classpath/tools/classes/com/sun/javadoc/Type.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/com/sun/javadoc/TypeVariable.class b/libjava/classpath/tools/classes/com/sun/javadoc/TypeVariable.class
deleted file mode 100644
index c9fc10f..0000000
Binary files a/libjava/classpath/tools/classes/com/sun/javadoc/TypeVariable.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/com/sun/tools/doclets/Taglet.class b/libjava/classpath/tools/classes/com/sun/tools/doclets/Taglet.class
deleted file mode 100644
index 929a3d4..0000000
Binary files a/libjava/classpath/tools/classes/com/sun/tools/doclets/Taglet.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/com/sun/tools/javac/Main.class b/libjava/classpath/tools/classes/com/sun/tools/javac/Main.class
deleted file mode 100644
index c3b8636..0000000
Binary files a/libjava/classpath/tools/classes/com/sun/tools/javac/Main.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/com/sun/tools/javac/Messages.class b/libjava/classpath/tools/classes/com/sun/tools/javac/Messages.class
deleted file mode 100644
index 50ced90..0000000
Binary files a/libjava/classpath/tools/classes/com/sun/tools/javac/Messages.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/com/sun/tools/javadoc/Main.class b/libjava/classpath/tools/classes/com/sun/tools/javadoc/Main.class
deleted file mode 100644
index 50a486c..0000000
Binary files a/libjava/classpath/tools/classes/com/sun/tools/javadoc/Main.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/com/sun/tools/javah/Main.class b/libjava/classpath/tools/classes/com/sun/tools/javah/Main.class
deleted file mode 100644
index b1f830d..0000000
Binary files a/libjava/classpath/tools/classes/com/sun/tools/javah/Main.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/FileSystemClassLoader$FileStreamInfo.class b/libjava/classpath/tools/classes/gnu/classpath/tools/FileSystemClassLoader$FileStreamInfo.class
deleted file mode 100644
index e64ee9f..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/FileSystemClassLoader$FileStreamInfo.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/FileSystemClassLoader$JarStreamInfo.class b/libjava/classpath/tools/classes/gnu/classpath/tools/FileSystemClassLoader$JarStreamInfo.class
deleted file mode 100644
index 27a4843..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/FileSystemClassLoader$JarStreamInfo.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/FileSystemClassLoader$StreamInfo.class b/libjava/classpath/tools/classes/gnu/classpath/tools/FileSystemClassLoader$StreamInfo.class
deleted file mode 100644
index 85f53ae..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/FileSystemClassLoader$StreamInfo.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/FileSystemClassLoader.class b/libjava/classpath/tools/classes/gnu/classpath/tools/FileSystemClassLoader.class
deleted file mode 100644
index cc4d74a..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/FileSystemClassLoader.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/IOToolkit.class b/libjava/classpath/tools/classes/gnu/classpath/tools/IOToolkit.class
deleted file mode 100644
index 967a3a8..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/IOToolkit.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/MalformedInputEvent.class b/libjava/classpath/tools/classes/gnu/classpath/tools/MalformedInputEvent.class
deleted file mode 100644
index c3701b1..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/MalformedInputEvent.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/MalformedInputListener.class b/libjava/classpath/tools/classes/gnu/classpath/tools/MalformedInputListener.class
deleted file mode 100644
index 6a90af5..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/MalformedInputListener.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/NotifyingInputStreamReader.class b/libjava/classpath/tools/classes/gnu/classpath/tools/NotifyingInputStreamReader.class
deleted file mode 100644
index 424a862..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/NotifyingInputStreamReader.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/StringToolkit.class b/libjava/classpath/tools/classes/gnu/classpath/tools/StringToolkit.class
deleted file mode 100644
index 1f6a488..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/StringToolkit.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/AppletClassLoader.class b/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/AppletClassLoader.class
deleted file mode 100644
index 50e61a6..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/AppletClassLoader.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/AppletSecurityManager.class b/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/AppletSecurityManager.class
deleted file mode 100644
index cab207c..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/AppletSecurityManager.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/AppletTag.class b/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/AppletTag.class
deleted file mode 100644
index 141d510..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/AppletTag.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/CommonAppletContext.class b/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/CommonAppletContext.class
deleted file mode 100644
index dbc0fb5..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/CommonAppletContext.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/CommonAppletStub.class b/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/CommonAppletStub.class
deleted file mode 100644
index 13f91ee..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/CommonAppletStub.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/ErrorApplet.class b/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/ErrorApplet.class
deleted file mode 100644
index ed7bdf6..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/ErrorApplet.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$1.class b/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$1.class
deleted file mode 100644
index d60ed70..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$1.class and /dev/null differ
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
deleted file mode 100644
index 6bd79be..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$10.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$2.class b/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$2.class
deleted file mode 100644
index 6798e97..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$2.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$3.class b/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$3.class
deleted file mode 100644
index f3fbb09..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$3.class and /dev/null differ
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
deleted file mode 100644
index 578fae0..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$4.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$5.class b/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$5.class
deleted file mode 100644
index 325a20c..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$5.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$6.class b/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$6.class
deleted file mode 100644
index cc651d5..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$6.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$7.class b/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$7.class
deleted file mode 100644
index 917b0c4..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$7.class and /dev/null differ
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
deleted file mode 100644
index 9f431fc..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$8.class and /dev/null differ
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
deleted file mode 100644
index cd542dd..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$9.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main.class b/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main.class
deleted file mode 100644
index b357b78..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Messages.class b/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Messages.class
deleted file mode 100644
index efc34df..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Messages.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/PluginAppletContext.class b/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/PluginAppletContext.class
deleted file mode 100644
index 1511a5e..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/PluginAppletContext.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/PluginAppletViewer.class b/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/PluginAppletViewer.class
deleted file mode 100644
index e8dc01e..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/PluginAppletViewer.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/PluginAppletWindow.class b/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/PluginAppletWindow.class
deleted file mode 100644
index 7e71885..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/PluginAppletWindow.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/StandaloneAppletContext.class b/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/StandaloneAppletContext.class
deleted file mode 100644
index a307a7a..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/StandaloneAppletContext.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/StandaloneAppletViewer.class b/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/StandaloneAppletViewer.class
deleted file mode 100644
index 82bdc43..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/StandaloneAppletViewer.class and /dev/null differ
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
deleted file mode 100644
index d6aee33..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/StandaloneAppletWindow$1.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/StandaloneAppletWindow.class b/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/StandaloneAppletWindow.class
deleted file mode 100644
index 94ed808..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/StandaloneAppletWindow.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/TagParser.class b/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/TagParser.class
deleted file mode 100644
index a3fdc69..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/TagParser.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/common/CallbackUtil.class b/libjava/classpath/tools/classes/gnu/classpath/tools/common/CallbackUtil.class
deleted file mode 100644
index 970232c..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/common/CallbackUtil.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/common/ClasspathToolParser$1.class b/libjava/classpath/tools/classes/gnu/classpath/tools/common/ClasspathToolParser$1.class
deleted file mode 100644
index 812fb94..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/common/ClasspathToolParser$1.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/common/ClasspathToolParser$2.class b/libjava/classpath/tools/classes/gnu/classpath/tools/common/ClasspathToolParser$2.class
deleted file mode 100644
index 803af4c..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/common/ClasspathToolParser$2.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/common/ClasspathToolParser$AtFileArgumentCallback.class b/libjava/classpath/tools/classes/gnu/classpath/tools/common/ClasspathToolParser$AtFileArgumentCallback.class
deleted file mode 100644
index 96677cc..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/common/ClasspathToolParser$AtFileArgumentCallback.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/common/ClasspathToolParser.class b/libjava/classpath/tools/classes/gnu/classpath/tools/common/ClasspathToolParser.class
deleted file mode 100644
index 472e138..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/common/ClasspathToolParser.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/common/Messages.class b/libjava/classpath/tools/classes/gnu/classpath/tools/common/Messages.class
deleted file mode 100644
index 39697a8..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/common/Messages.class and /dev/null differ
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
deleted file mode 100644
index 36daccb..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/common/Persistent$ExitTask.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/common/Persistent.class b/libjava/classpath/tools/classes/gnu/classpath/tools/common/Persistent.class
deleted file mode 100644
index 6a1e751..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/common/Persistent.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/common/ProviderUtil$1.class b/libjava/classpath/tools/classes/gnu/classpath/tools/common/ProviderUtil$1.class
deleted file mode 100644
index 727fd0a..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/common/ProviderUtil$1.class and /dev/null differ
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
deleted file mode 100644
index 5ba4b6a..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/common/ProviderUtil$2.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/common/ProviderUtil.class b/libjava/classpath/tools/classes/gnu/classpath/tools/common/ProviderUtil.class
deleted file mode 100644
index 9cffbfe..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/common/ProviderUtil.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/common/SecurityProviderInfo.class b/libjava/classpath/tools/classes/gnu/classpath/tools/common/SecurityProviderInfo.class
deleted file mode 100644
index 8715ab8..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/common/SecurityProviderInfo.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet$DocletOptionGroup.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet$DocletOptionGroup.class
deleted file mode 100644
index 3227355..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet$DocletOptionGroup.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet$DocletOptionTag.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet$DocletOptionTag.class
deleted file mode 100644
index 902a014..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet$DocletOptionTag.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet$IndexKey.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet$IndexKey.class
deleted file mode 100644
index 04004cb..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet$IndexKey.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet$InterfaceRelation.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet$InterfaceRelation.class
deleted file mode 100644
index d218633..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet$InterfaceRelation.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet$UsageType.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet$UsageType.class
deleted file mode 100644
index 1b2e6ae..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet$UsageType.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet.class
deleted file mode 100644
index 9c7adce..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/DocletConfigurationException.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/DocletConfigurationException.class
deleted file mode 100644
index 28d3cd1..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/DocletConfigurationException.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/DocletOption.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/DocletOption.class
deleted file mode 100644
index 5b491a4..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/DocletOption.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/DocletOptionColonSeparated.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/DocletOptionColonSeparated.class
deleted file mode 100644
index 5f4f6b4..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/DocletOptionColonSeparated.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/DocletOptionFile.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/DocletOptionFile.class
deleted file mode 100644
index aac98a4..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/DocletOptionFile.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/DocletOptionFlag.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/DocletOptionFlag.class
deleted file mode 100644
index ae9466a..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/DocletOptionFlag.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/DocletOptionPackageWildcard.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/DocletOptionPackageWildcard.class
deleted file mode 100644
index 3f9d436..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/DocletOptionPackageWildcard.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/DocletOptionString.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/DocletOptionString.class
deleted file mode 100644
index 79bbe2c..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/DocletOptionString.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/InlineTagRenderer.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/InlineTagRenderer.class
deleted file mode 100644
index d938d61..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/InlineTagRenderer.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/InvalidPackageWildcardException.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/InvalidPackageWildcardException.class
deleted file mode 100644
index 0141cb1..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/InvalidPackageWildcardException.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/PackageGroup.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/PackageGroup.class
deleted file mode 100644
index c9bdbaa..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/PackageGroup.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/PackageMatcher.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/PackageMatcher.class
deleted file mode 100644
index e15bd14..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/PackageMatcher.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/StandardTaglet.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/StandardTaglet.class
deleted file mode 100644
index 2422f3e..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/StandardTaglet.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/TagletPrinter.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/TagletPrinter.class
deleted file mode 100644
index ac908c9..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/TagletPrinter.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/debugdoclet/DebugDoclet.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/debugdoclet/DebugDoclet.class
deleted file mode 100644
index 0ddee88..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/debugdoclet/DebugDoclet.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/CssClass.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/CssClass.class
deleted file mode 100644
index 89ca9bb..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/CssClass.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/ExternalDocSet.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/ExternalDocSet.class
deleted file mode 100644
index 16ffa33..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/ExternalDocSet.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet$1.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet$1.class
deleted file mode 100644
index 064c32a..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet$1.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet$2.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet$2.class
deleted file mode 100644
index be042e3..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet$2.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet$3.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet$3.class
deleted file mode 100644
index bc665c5..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet$3.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet$TreeNode.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet$TreeNode.class
deleted file mode 100644
index 902315b..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet$TreeNode.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet.class
deleted file mode 100644
index 23331dd..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlPage.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlPage.class
deleted file mode 100644
index ffa980d..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlPage.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlTagletContext.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlTagletContext.class
deleted file mode 100644
index 39fa437..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlTagletContext.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/Driver$1.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/Driver$1.class
deleted file mode 100644
index 51027ef..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/Driver$1.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/Driver$NullErrorReporter.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/Driver$NullErrorReporter.class
deleted file mode 100644
index 42b2a7d..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/Driver$NullErrorReporter.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/Driver$UsageType.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/Driver$UsageType.class
deleted file mode 100644
index dfd0a22..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/Driver$UsageType.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/Driver.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/Driver.class
deleted file mode 100644
index f34cca5..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/Driver.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/Driver1_4.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/Driver1_4.class
deleted file mode 100644
index e18500a..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/Driver1_4.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/HtmlRepairer$TagInfo.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/HtmlRepairer$TagInfo.class
deleted file mode 100644
index 7c0462b..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/HtmlRepairer$TagInfo.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/HtmlRepairer.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/HtmlRepairer.class
deleted file mode 100644
index f153d7f..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/HtmlRepairer.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/TargetContext.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/TargetContext.class
deleted file mode 100644
index 9e4d11f..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/TargetContext.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTranslet$DocErrorReporterOutputStream.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTranslet$DocErrorReporterOutputStream.class
deleted file mode 100644
index d6d09c0..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTranslet$DocErrorReporterOutputStream.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTranslet.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTranslet.class
deleted file mode 100644
index fb76313..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTranslet.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTransletConfigurationException.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTransletConfigurationException.class
deleted file mode 100644
index e13119b..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTransletConfigurationException.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTransletException.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTransletException.class
deleted file mode 100644
index 01c6284..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTransletException.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTransletOptions.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTransletOptions.class
deleted file mode 100644
index a21b922..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTransletOptions.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/doctranslet/JarClassLoader.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/doctranslet/JarClassLoader.class
deleted file mode 100644
index 262031d..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/doctranslet/JarClassLoader.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/doctranslet/OutputFileInfo.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/doctranslet/OutputFileInfo.class
deleted file mode 100644
index 3b14f23..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/doctranslet/OutputFileInfo.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/getopt/FileArgumentCallback.class b/libjava/classpath/tools/classes/gnu/classpath/tools/getopt/FileArgumentCallback.class
deleted file mode 100644
index de9d9a6..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/getopt/FileArgumentCallback.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/getopt/Messages.class b/libjava/classpath/tools/classes/gnu/classpath/tools/getopt/Messages.class
deleted file mode 100644
index ce6cc5c..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/getopt/Messages.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/getopt/Option.class b/libjava/classpath/tools/classes/gnu/classpath/tools/getopt/Option.class
deleted file mode 100644
index c978000..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/getopt/Option.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/getopt/OptionException.class b/libjava/classpath/tools/classes/gnu/classpath/tools/getopt/OptionException.class
deleted file mode 100644
index 1f06b6f..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/getopt/OptionException.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/getopt/OptionGroup.class b/libjava/classpath/tools/classes/gnu/classpath/tools/getopt/OptionGroup.class
deleted file mode 100644
index 2467f781..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/getopt/OptionGroup.class and /dev/null differ
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
deleted file mode 100644
index 352177e..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/getopt/Parser$1.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/getopt/Parser$2.class b/libjava/classpath/tools/classes/gnu/classpath/tools/getopt/Parser$2.class
deleted file mode 100644
index 013fcb9..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/getopt/Parser$2.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/getopt/Parser$3.class b/libjava/classpath/tools/classes/gnu/classpath/tools/getopt/Parser$3.class
deleted file mode 100644
index 63abbdb..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/getopt/Parser$3.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/getopt/Parser.class b/libjava/classpath/tools/classes/gnu/classpath/tools/getopt/Parser.class
deleted file mode 100644
index 1e0586d..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/getopt/Parser.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/AbstractTagImpl.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/AbstractTagImpl.class
deleted file mode 100644
index 6f8b420..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/AbstractTagImpl.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ArrayCharacterIterator.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ArrayCharacterIterator.class
deleted file mode 100644
index 2a21e67..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ArrayCharacterIterator.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/BlockSourceComponent.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/BlockSourceComponent.class
deleted file mode 100644
index 0db6dde..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/BlockSourceComponent.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/BracketClose.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/BracketClose.class
deleted file mode 100644
index 64faa74..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/BracketClose.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ClassComponent.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ClassComponent.class
deleted file mode 100644
index 3be4296..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ClassComponent.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ClassDocImpl.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ClassDocImpl.class
deleted file mode 100644
index b3184c7..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ClassDocImpl.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ClassDocProxy.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ClassDocProxy.class
deleted file mode 100644
index 71e6b96..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ClassDocProxy.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ClassDocReflectedImpl.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ClassDocReflectedImpl.class
deleted file mode 100644
index 6050b41..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ClassDocReflectedImpl.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/CommentComponent.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/CommentComponent.class
deleted file mode 100644
index 499539d..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/CommentComponent.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ConstructorDocImpl.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ConstructorDocImpl.class
deleted file mode 100644
index 8ab08af..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ConstructorDocImpl.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Debug.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Debug.class
deleted file mode 100644
index fb026a0..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Debug.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/DirectoryTree$FileNode.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/DirectoryTree$FileNode.class
deleted file mode 100644
index 6d963c3..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/DirectoryTree$FileNode.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/DirectoryTree.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/DirectoryTree.class
deleted file mode 100644
index 3d6bf8c..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/DirectoryTree.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/DocImpl.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/DocImpl.class
deleted file mode 100644
index 3cbde58..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/DocImpl.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/EmptyStatementComponent.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/EmptyStatementComponent.class
deleted file mode 100644
index d7e8ae7..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/EmptyStatementComponent.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ErrorReporter.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ErrorReporter.class
deleted file mode 100644
index d32b961..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ErrorReporter.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ExecutableMemberDocImpl.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ExecutableMemberDocImpl.class
deleted file mode 100644
index ced9114..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ExecutableMemberDocImpl.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/FieldComponent.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/FieldComponent.class
deleted file mode 100644
index 2b9c194..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/FieldComponent.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/FieldDocImpl.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/FieldDocImpl.class
deleted file mode 100644
index 44a0368..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/FieldDocImpl.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/FunctionComponent.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/FunctionComponent.class
deleted file mode 100644
index e17d157..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/FunctionComponent.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/GjdocPackageDoc.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/GjdocPackageDoc.class
deleted file mode 100644
index 0932db2..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/GjdocPackageDoc.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/GjdocRootDoc.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/GjdocRootDoc.class
deleted file mode 100644
index 7ad3e40..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/GjdocRootDoc.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/IgnoredFileParseException.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/IgnoredFileParseException.class
deleted file mode 100644
index df34d72..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/IgnoredFileParseException.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ImportComponent.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ImportComponent.class
deleted file mode 100644
index 47b676e..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ImportComponent.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/InheritDocTagImpl.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/InheritDocTagImpl.class
deleted file mode 100644
index 715d01c..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/InheritDocTagImpl.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/JavadocWrapper.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/JavadocWrapper.class
deleted file mode 100644
index d38c2bf..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/JavadocWrapper.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/LinkTagImpl.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/LinkTagImpl.class
deleted file mode 100644
index b470a9a..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/LinkTagImpl.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$1.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$1.class
deleted file mode 100644
index bd65793..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$1.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$10.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$10.class
deleted file mode 100644
index d9aa037..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$10.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$11.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$11.class
deleted file mode 100644
index 83f5cf3..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$11.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$12.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$12.class
deleted file mode 100644
index 286f38b..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$12.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$13.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$13.class
deleted file mode 100644
index 2754c8e..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$13.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$14.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$14.class
deleted file mode 100644
index 97a338b..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$14.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$15.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$15.class
deleted file mode 100644
index acad8f2..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$15.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$16.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$16.class
deleted file mode 100644
index 3a934b8..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$16.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$17.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$17.class
deleted file mode 100644
index 73076d6..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$17.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$18.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$18.class
deleted file mode 100644
index c439b2f..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$18.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$19.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$19.class
deleted file mode 100644
index 865a195..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$19.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$2.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$2.class
deleted file mode 100644
index e868385..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$2.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$20.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$20.class
deleted file mode 100644
index d075ea4..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$20.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$21.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$21.class
deleted file mode 100644
index 1b510d3..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$21.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$22.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$22.class
deleted file mode 100644
index 6588731..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$22.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$23.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$23.class
deleted file mode 100644
index bded03e..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$23.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$24.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$24.class
deleted file mode 100644
index 923b329..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$24.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$25.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$25.class
deleted file mode 100644
index c9a98f6..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$25.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$3.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$3.class
deleted file mode 100644
index b8edf69..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$3.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$4.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$4.class
deleted file mode 100644
index ba88829..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$4.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$5.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$5.class
deleted file mode 100644
index 3722ca4..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$5.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$6.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$6.class
deleted file mode 100644
index 6b6d81b6..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$6.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$7.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$7.class
deleted file mode 100644
index 2e70f42..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$7.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$8.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$8.class
deleted file mode 100644
index bca2f27..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$8.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$9.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$9.class
deleted file mode 100644
index 2d791e6..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$9.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$OptionProcessor.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$OptionProcessor.class
deleted file mode 100644
index 255a0b6..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$OptionProcessor.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main.class
deleted file mode 100644
index 141d3c2..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/MemberDocImpl.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/MemberDocImpl.class
deleted file mode 100644
index ad2f73d..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/MemberDocImpl.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/MethodDocImpl.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/MethodDocImpl.class
deleted file mode 100644
index 5bff1ce..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/MethodDocImpl.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/PackageComponent.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/PackageComponent.class
deleted file mode 100644
index 903c7b5..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/PackageComponent.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/PackageDocImpl.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/PackageDocImpl.class
deleted file mode 100644
index 867559a..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/PackageDocImpl.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ParamTagImpl.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ParamTagImpl.class
deleted file mode 100644
index e2fadec..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ParamTagImpl.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ParameterImpl.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ParameterImpl.class
deleted file mode 100644
index 93575d2..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ParameterImpl.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ParseException.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ParseException.class
deleted file mode 100644
index 52c67ef..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ParseException.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Parser$1.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Parser$1.class
deleted file mode 100644
index 193cf94..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Parser$1.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Parser$Context.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Parser$Context.class
deleted file mode 100644
index 15bb010..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Parser$Context.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Parser.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Parser.class
deleted file mode 100644
index 537511c..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Parser.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ProgramElementDocImpl.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ProgramElementDocImpl.class
deleted file mode 100644
index 50d6e52..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ProgramElementDocImpl.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl$ResolvedImport.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl$ResolvedImport.class
deleted file mode 100644
index 803eb60..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl$ResolvedImport.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl$ResolvedImportClassFile.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl$ResolvedImportClassFile.class
deleted file mode 100644
index a82823a..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl$ResolvedImportClassFile.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl$ResolvedImportNotFound.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl$ResolvedImportNotFound.class
deleted file mode 100644
index 68af450..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl$ResolvedImportNotFound.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl$ResolvedImportPackageFile.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl$ResolvedImportPackageFile.class
deleted file mode 100644
index 4302abe..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl$ResolvedImportPackageFile.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl$ResolvedImportReflectionClass.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl$ResolvedImportReflectionClass.class
deleted file mode 100644
index c0b66dd..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl$ResolvedImportReflectionClass.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl$ResolvedImportReflectionPackage.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl$ResolvedImportReflectionPackage.class
deleted file mode 100644
index 2069ee6..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl$ResolvedImportReflectionPackage.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl$ScheduledClass.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl$ScheduledClass.class
deleted file mode 100644
index 9c76827..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl$ScheduledClass.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl.class
deleted file mode 100644
index a61b2bd..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/SeeTagImpl.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/SeeTagImpl.class
deleted file mode 100644
index 324fb5b..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/SeeTagImpl.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/SerialFieldTagImpl.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/SerialFieldTagImpl.class
deleted file mode 100644
index 5f75b5a..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/SerialFieldTagImpl.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/SlashSlashCommentComponent.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/SlashSlashCommentComponent.class
deleted file mode 100644
index 405eb2a..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/SlashSlashCommentComponent.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/SourceComponent.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/SourceComponent.class
deleted file mode 100644
index 2030e06..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/SourceComponent.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/SourcePositionImpl.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/SourcePositionImpl.class
deleted file mode 100644
index 3f94fd1..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/SourcePositionImpl.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/StaticBlockComponent.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/StaticBlockComponent.class
deleted file mode 100644
index d3a656f..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/StaticBlockComponent.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TagContainer.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TagContainer.class
deleted file mode 100644
index 6ff3032..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TagContainer.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TagImpl.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TagImpl.class
deleted file mode 100644
index 536c107..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TagImpl.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TemporaryStore.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TemporaryStore.class
deleted file mode 100644
index cf42c61f..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TemporaryStore.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TextTagImpl.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TextTagImpl.class
deleted file mode 100644
index 73e55029..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TextTagImpl.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ThrowsTagImpl.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ThrowsTagImpl.class
deleted file mode 100644
index 06cc77c..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ThrowsTagImpl.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Timer.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Timer.class
deleted file mode 100644
index 8f5dc61..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Timer.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TimerDoclet$1.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TimerDoclet$1.class
deleted file mode 100644
index e340899..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TimerDoclet$1.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TimerDoclet.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TimerDoclet.class
deleted file mode 100644
index 965ef1c..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TimerDoclet.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TypeImpl.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TypeImpl.class
deleted file mode 100644
index 50bb53e..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TypeImpl.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TypeVariableImpl.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TypeVariableImpl.class
deleted file mode 100644
index 2ebf595..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TypeVariableImpl.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ValueTagImpl.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ValueTagImpl.class
deleted file mode 100644
index 872c403..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ValueTagImpl.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Whitespace.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Whitespace.class
deleted file mode 100644
index c7e9469..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Whitespace.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/WritableType.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/WritableType.class
deleted file mode 100644
index 8c61a4a..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/WritableType.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/AdditionExpression.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/AdditionExpression.class
deleted file mode 100644
index ef3bbff..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/AdditionExpression.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/AndExpression.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/AndExpression.class
deleted file mode 100644
index b5f1deb..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/AndExpression.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BinaryBitwiseExpression.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BinaryBitwiseExpression.class
deleted file mode 100644
index b83ad66..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BinaryBitwiseExpression.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BinaryComputationExpression.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BinaryComputationExpression.class
deleted file mode 100644
index d56220d..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BinaryComputationExpression.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BinaryEqualityExpression.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BinaryEqualityExpression.class
deleted file mode 100644
index 52c0522..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BinaryEqualityExpression.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BinaryExpression.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BinaryExpression.class
deleted file mode 100644
index 688a122..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BinaryExpression.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BinaryLogicalExpression.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BinaryLogicalExpression.class
deleted file mode 100644
index ea6978d..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BinaryLogicalExpression.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BinaryRelationExpression.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BinaryRelationExpression.class
deleted file mode 100644
index 72a6fc8..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BinaryRelationExpression.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BinaryShiftExpression.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BinaryShiftExpression.class
deleted file mode 100644
index 5726e7a..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BinaryShiftExpression.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BitShiftRightExpression.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BitShiftRightExpression.class
deleted file mode 100644
index e1f37d5..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BitShiftRightExpression.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/CircularExpressionException.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/CircularExpressionException.class
deleted file mode 100644
index f1a2123..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/CircularExpressionException.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConditionalExpression.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConditionalExpression.class
deleted file mode 100644
index 87114d6..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConditionalExpression.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantBoolean.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantBoolean.class
deleted file mode 100644
index 2ee7e54..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantBoolean.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantByte.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantByte.class
deleted file mode 100644
index 3eacffb..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantByte.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantChar.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantChar.class
deleted file mode 100644
index c4de797..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantChar.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantDouble.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantDouble.class
deleted file mode 100644
index 38700c7..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantDouble.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantExpression.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantExpression.class
deleted file mode 100644
index 3d194a9..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantExpression.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantFloat.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantFloat.class
deleted file mode 100644
index 61b969f..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantFloat.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantInteger.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantInteger.class
deleted file mode 100644
index 278ab37..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantInteger.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantLong.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantLong.class
deleted file mode 100644
index 7269149..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantLong.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantNull.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantNull.class
deleted file mode 100644
index d2c3574..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantNull.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantShort.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantShort.class
deleted file mode 100644
index 691a019..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantShort.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantString.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantString.class
deleted file mode 100644
index 67ef948..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantString.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/Context.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/Context.class
deleted file mode 100644
index 0a21eff..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/Context.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/DivisionExpression.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/DivisionExpression.class
deleted file mode 100644
index 95cc47b..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/DivisionExpression.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/EqualExpression.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/EqualExpression.class
deleted file mode 100644
index 2fd2087..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/EqualExpression.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/Evaluator.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/Evaluator.class
deleted file mode 100644
index ea004c5..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/Evaluator.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/EvaluatorEnvironment.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/EvaluatorEnvironment.class
deleted file mode 100644
index dd89517..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/EvaluatorEnvironment.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ExclusiveOrExpression.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ExclusiveOrExpression.class
deleted file mode 100644
index 0474dd4..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ExclusiveOrExpression.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/Expression.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/Expression.class
deleted file mode 100644
index 52b5f93..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/Expression.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/GreaterThanExpression.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/GreaterThanExpression.class
deleted file mode 100644
index 33a8829..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/GreaterThanExpression.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/GreaterThanOrEqualExpression.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/GreaterThanOrEqualExpression.class
deleted file mode 100644
index f864c02..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/GreaterThanOrEqualExpression.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/IdentifierExpression.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/IdentifierExpression.class
deleted file mode 100644
index 8b25266..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/IdentifierExpression.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/IllegalExpressionException.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/IllegalExpressionException.class
deleted file mode 100644
index 312246f..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/IllegalExpressionException.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/InclusiveOrExpression.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/InclusiveOrExpression.class
deleted file mode 100644
index 8ac3c22..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/InclusiveOrExpression.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/JavaLexer.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/JavaLexer.class
deleted file mode 100644
index 3367c36..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/JavaLexer.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/JavaRecognizer.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/JavaRecognizer.class
deleted file mode 100644
index ec48917..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/JavaRecognizer.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/JavaTokenTypes.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/JavaTokenTypes.class
deleted file mode 100644
index 39e584d..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/JavaTokenTypes.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/LessThanExpression.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/LessThanExpression.class
deleted file mode 100644
index d0d6923..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/LessThanExpression.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/LessThanOrEqualExpression.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/LessThanOrEqualExpression.class
deleted file mode 100644
index e40f856..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/LessThanOrEqualExpression.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/LogicalAndExpression.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/LogicalAndExpression.class
deleted file mode 100644
index da9124b..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/LogicalAndExpression.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/LogicalNotExpression.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/LogicalNotExpression.class
deleted file mode 100644
index 055856e..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/LogicalNotExpression.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/LogicalOrExpression.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/LogicalOrExpression.class
deleted file mode 100644
index 8ed3004..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/LogicalOrExpression.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ModuloExpression.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ModuloExpression.class
deleted file mode 100644
index ec9870c..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ModuloExpression.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/MultiplicationExpression.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/MultiplicationExpression.class
deleted file mode 100644
index 770c4f4..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/MultiplicationExpression.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/NegateExpression.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/NegateExpression.class
deleted file mode 100644
index 6745a50..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/NegateExpression.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/NotEqualExpression.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/NotEqualExpression.class
deleted file mode 100644
index 8a830ca..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/NotEqualExpression.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/NotExpression.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/NotExpression.class
deleted file mode 100644
index 9644608..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/NotExpression.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ShiftLeftExpression.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ShiftLeftExpression.class
deleted file mode 100644
index f7f21d2..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ShiftLeftExpression.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ShiftRightExpression.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ShiftRightExpression.class
deleted file mode 100644
index afa890a..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ShiftRightExpression.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/SubtractionExpression.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/SubtractionExpression.class
deleted file mode 100644
index e7496b3..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/SubtractionExpression.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/Type.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/Type.class
deleted file mode 100644
index efa322a..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/Type.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/TypeCastExpression.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/TypeCastExpression.class
deleted file mode 100644
index 2f16d29..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/TypeCastExpression.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/UnaryExpression.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/UnaryExpression.class
deleted file mode 100644
index 7189a29..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/UnaryExpression.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/UnknownIdentifierException.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/UnknownIdentifierException.class
deleted file mode 100644
index 3e678af..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/UnknownIdentifierException.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Action.class b/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Action.class
deleted file mode 100644
index 513df1c..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Action.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Creator.class b/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Creator.class
deleted file mode 100644
index 20d5f84..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Creator.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Entry.class b/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Entry.class
deleted file mode 100644
index b517df7..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Entry.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Extractor.class b/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Extractor.class
deleted file mode 100644
index c0d819e..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Extractor.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Indexer.class b/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Indexer.class
deleted file mode 100644
index bea2d0f..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Indexer.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Lister.class b/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Lister.class
deleted file mode 100644
index 81cdaec..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Lister.class and /dev/null differ
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
deleted file mode 100644
index 1823aeb..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main$1.class and /dev/null differ
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
deleted file mode 100644
index 22a34b0..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main$2.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main$3.class b/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main$3.class
deleted file mode 100644
index e2273aa..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main$3.class and /dev/null differ
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
deleted file mode 100644
index db23620..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main$4.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main$5.class b/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main$5.class
deleted file mode 100644
index feadf38..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main$5.class and /dev/null differ
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
deleted file mode 100644
index 4795844..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main$6.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main$7.class b/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main$7.class
deleted file mode 100644
index 57a9742..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main$7.class and /dev/null differ
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
deleted file mode 100644
index 6d7c301..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main$HandleFile.class and /dev/null differ
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
deleted file mode 100644
index db164f2..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main$JarParser.class and /dev/null differ
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
deleted file mode 100644
index 394b4e0..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main$ModeOption.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main.class b/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main.class
deleted file mode 100644
index c8eb12d..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Messages.class b/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Messages.class
deleted file mode 100644
index 6d26c66..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Messages.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Updater.class b/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Updater.class
deleted file mode 100644
index e9f19b7..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Updater.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/jar/WorkSet.class b/libjava/classpath/tools/classes/gnu/classpath/tools/jar/WorkSet.class
deleted file mode 100644
index 5e792e6..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/jar/WorkSet.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/jarsigner/HashUtils.class b/libjava/classpath/tools/classes/gnu/classpath/tools/jarsigner/HashUtils.class
deleted file mode 100644
index 0081db4..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/jarsigner/HashUtils.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/jarsigner/JarSigner.class b/libjava/classpath/tools/classes/gnu/classpath/tools/jarsigner/JarSigner.class
deleted file mode 100644
index 3f0e383..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/jarsigner/JarSigner.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/jarsigner/JarVerifier.class b/libjava/classpath/tools/classes/gnu/classpath/tools/jarsigner/JarVerifier.class
deleted file mode 100644
index 987781f..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/jarsigner/JarVerifier.class and /dev/null differ
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
deleted file mode 100644
index 22ed506..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/jarsigner/Main$1.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/jarsigner/Main$10.class b/libjava/classpath/tools/classes/gnu/classpath/tools/jarsigner/Main$10.class
deleted file mode 100644
index e0bf16b..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/jarsigner/Main$10.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/jarsigner/Main$11.class b/libjava/classpath/tools/classes/gnu/classpath/tools/jarsigner/Main$11.class
deleted file mode 100644
index 444dbc6..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/jarsigner/Main$11.class and /dev/null differ
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
deleted file mode 100644
index dfdeb3a..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/jarsigner/Main$12.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/jarsigner/Main$2.class b/libjava/classpath/tools/classes/gnu/classpath/tools/jarsigner/Main$2.class
deleted file mode 100644
index 1532486..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/jarsigner/Main$2.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/jarsigner/Main$3.class b/libjava/classpath/tools/classes/gnu/classpath/tools/jarsigner/Main$3.class
deleted file mode 100644
index 8781f7c..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/jarsigner/Main$3.class and /dev/null differ
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
deleted file mode 100644
index 3a2d7b9..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/jarsigner/Main$4.class and /dev/null differ
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
deleted file mode 100644
index 08cb863..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/jarsigner/Main$5.class and /dev/null differ
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
deleted file mode 100644
index 4b393a0..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/jarsigner/Main$6.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/jarsigner/Main$7.class b/libjava/classpath/tools/classes/gnu/classpath/tools/jarsigner/Main$7.class
deleted file mode 100644
index 61a170a..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/jarsigner/Main$7.class and /dev/null differ
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
deleted file mode 100644
index c04f284..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/jarsigner/Main$8.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/jarsigner/Main$9.class b/libjava/classpath/tools/classes/gnu/classpath/tools/jarsigner/Main$9.class
deleted file mode 100644
index e65131c..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/jarsigner/Main$9.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/jarsigner/Main$ToolParser.class b/libjava/classpath/tools/classes/gnu/classpath/tools/jarsigner/Main$ToolParser.class
deleted file mode 100644
index ba2e909..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/jarsigner/Main$ToolParser.class and /dev/null differ
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
deleted file mode 100644
index e84dad5..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/jarsigner/Main$ToolParserCallback.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/jarsigner/Main.class b/libjava/classpath/tools/classes/gnu/classpath/tools/jarsigner/Main.class
deleted file mode 100644
index e62e7e8..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/jarsigner/Main.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/jarsigner/Messages.class b/libjava/classpath/tools/classes/gnu/classpath/tools/jarsigner/Messages.class
deleted file mode 100644
index 2619d76..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/jarsigner/Messages.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/jarsigner/SFHelper.class b/libjava/classpath/tools/classes/gnu/classpath/tools/jarsigner/SFHelper.class
deleted file mode 100644
index a8d5b677..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/jarsigner/SFHelper.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/java2xhtml/Java2xhtml$State.class b/libjava/classpath/tools/classes/gnu/classpath/tools/java2xhtml/Java2xhtml$State.class
deleted file mode 100644
index f056c62..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/java2xhtml/Java2xhtml$State.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/java2xhtml/Java2xhtml.class b/libjava/classpath/tools/classes/gnu/classpath/tools/java2xhtml/Java2xhtml.class
deleted file mode 100644
index 17de273..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/java2xhtml/Java2xhtml.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/ClassWrapper.class b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/ClassWrapper.class
deleted file mode 100644
index d869418..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/ClassWrapper.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/CniIncludePrinter.class b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/CniIncludePrinter.class
deleted file mode 100644
index 6cbf969..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/CniIncludePrinter.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/CniPrintStream.class b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/CniPrintStream.class
deleted file mode 100644
index c1a13fe..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/CniPrintStream.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/CniStubPrinter.class b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/CniStubPrinter.class
deleted file mode 100644
index 559adbf..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/CniStubPrinter.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/FieldHelper.class b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/FieldHelper.class
deleted file mode 100644
index 3d6f235..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/FieldHelper.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$1.class b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$1.class
deleted file mode 100644
index 37f0ce5..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$1.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$2.class b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$2.class
deleted file mode 100644
index 47cf330..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$2.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$3.class b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$3.class
deleted file mode 100644
index 4c4bfdd..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$3.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$4.class b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$4.class
deleted file mode 100644
index 9099ce8..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$4.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$5.class b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$5.class
deleted file mode 100644
index 29425b0..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$5.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$6.class b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$6.class
deleted file mode 100644
index e71bd68..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$6.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$7.class b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$7.class
deleted file mode 100644
index 4295238..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$7.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$8.class b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$8.class
deleted file mode 100644
index 6b61307..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$8.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$9.class b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$9.class
deleted file mode 100644
index 6ad457f..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$9.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain.class b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain.class
deleted file mode 100644
index 1efd92d..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/JniHelper.class b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/JniHelper.class
deleted file mode 100644
index cf4b5cf..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/JniHelper.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/JniIncludePrinter.class b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/JniIncludePrinter.class
deleted file mode 100644
index 30d1674..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/JniIncludePrinter.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/JniPrintStream.class b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/JniPrintStream.class
deleted file mode 100644
index d8f006c..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/JniPrintStream.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/JniStubPrinter.class b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/JniStubPrinter.class
deleted file mode 100644
index b7c8453..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/JniStubPrinter.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Keywords.class b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Keywords.class
deleted file mode 100644
index 97b0b76..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Keywords.class and /dev/null differ
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
deleted file mode 100644
index 05958fd..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$1.class and /dev/null differ
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
deleted file mode 100644
index 3e1615a..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$10.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$2.class b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$2.class
deleted file mode 100644
index c0998c8..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$2.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$3.class b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$3.class
deleted file mode 100644
index 62bf927..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$3.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$4.class b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$4.class
deleted file mode 100644
index 0305abe..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$4.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$5.class b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$5.class
deleted file mode 100644
index c8ed400..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$5.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$6.class b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$6.class
deleted file mode 100644
index d5be6d2..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$6.class and /dev/null differ
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
deleted file mode 100644
index b2e37e1..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$7.class and /dev/null differ
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
deleted file mode 100644
index 9900e53..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$8.class and /dev/null differ
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
deleted file mode 100644
index bc9fb98..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$9.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main.class b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main.class
deleted file mode 100644
index 12f1a7d..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/MethodHelper.class b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/MethodHelper.class
deleted file mode 100644
index fe4f732..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/MethodHelper.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/PackageWrapper.class b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/PackageWrapper.class
deleted file mode 100644
index 68f16fb..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/PackageWrapper.class and /dev/null differ
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
deleted file mode 100644
index 43d816d..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/PathOptionGroup$1.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/PathOptionGroup$2.class b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/PathOptionGroup$2.class
deleted file mode 100644
index c49e59f..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/PathOptionGroup$2.class and /dev/null differ
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
deleted file mode 100644
index 333b8ea..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/PathOptionGroup$3.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/PathOptionGroup$4.class b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/PathOptionGroup$4.class
deleted file mode 100644
index c925e98..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/PathOptionGroup$4.class and /dev/null differ
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
deleted file mode 100644
index 001ebeb..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/PathOptionGroup$5.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/PathOptionGroup$6.class b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/PathOptionGroup$6.class
deleted file mode 100644
index 724920b..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/PathOptionGroup$6.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/PathOptionGroup.class b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/PathOptionGroup.class
deleted file mode 100644
index 1608c71..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/PathOptionGroup.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Printer.class b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Printer.class
deleted file mode 100644
index 94bc20c..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Printer.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Text.class b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Text.class
deleted file mode 100644
index e084d89..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Text.class and /dev/null differ
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
deleted file mode 100644
index b2424cf..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/CACertCmd$1.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/CACertCmd$2.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/CACertCmd$2.class
deleted file mode 100644
index 980c574..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/CACertCmd$2.class and /dev/null differ
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
deleted file mode 100644
index 81dddcc..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/CACertCmd$3.class and /dev/null differ
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
deleted file mode 100644
index 7f8d6df..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/CACertCmd$4.class and /dev/null differ
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
deleted file mode 100644
index fc1e47b..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/CACertCmd$5.class and /dev/null differ
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
deleted file mode 100644
index 3fd3a7a..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/CACertCmd$6.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/CACertCmd.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/CACertCmd.class
deleted file mode 100644
index 8b0ca12..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/CACertCmd.class and /dev/null differ
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
deleted file mode 100644
index effe78b..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/CertReqCmd$1.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/CertReqCmd$10.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/CertReqCmd$10.class
deleted file mode 100644
index 6b6accd..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/CertReqCmd$10.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/CertReqCmd$2.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/CertReqCmd$2.class
deleted file mode 100644
index 6952425..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/CertReqCmd$2.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/CertReqCmd$3.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/CertReqCmd$3.class
deleted file mode 100644
index db64eaf..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/CertReqCmd$3.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/CertReqCmd$4.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/CertReqCmd$4.class
deleted file mode 100644
index bc646ad..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/CertReqCmd$4.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/CertReqCmd$5.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/CertReqCmd$5.class
deleted file mode 100644
index e1a5076..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/CertReqCmd$5.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/CertReqCmd$6.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/CertReqCmd$6.class
deleted file mode 100644
index 76ee437..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/CertReqCmd$6.class and /dev/null differ
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
deleted file mode 100644
index 5da8d3a..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/CertReqCmd$7.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/CertReqCmd$8.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/CertReqCmd$8.class
deleted file mode 100644
index c55f697..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/CertReqCmd$8.class and /dev/null differ
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
deleted file mode 100644
index f04e4fe..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/CertReqCmd$9.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/CertReqCmd.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/CertReqCmd.class
deleted file mode 100644
index 3ee202a..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/CertReqCmd.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/Command$ShutdownHook.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/Command$ShutdownHook.class
deleted file mode 100644
index d1b0f5c..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/Command$ShutdownHook.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/Command.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/Command.class
deleted file mode 100644
index 49134bca..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/Command.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/DeleteCmd$1.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/DeleteCmd$1.class
deleted file mode 100644
index eb6a38c..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/DeleteCmd$1.class and /dev/null differ
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
deleted file mode 100644
index e4844ab..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/DeleteCmd$2.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/DeleteCmd$3.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/DeleteCmd$3.class
deleted file mode 100644
index d31c08a..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/DeleteCmd$3.class and /dev/null differ
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
deleted file mode 100644
index 9d7761e..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/DeleteCmd$4.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/DeleteCmd$5.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/DeleteCmd$5.class
deleted file mode 100644
index 6e60575..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/DeleteCmd$5.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/DeleteCmd$6.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/DeleteCmd$6.class
deleted file mode 100644
index 4b9ed76..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/DeleteCmd$6.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/DeleteCmd.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/DeleteCmd.class
deleted file mode 100644
index d4ec536..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/DeleteCmd.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ExportCmd$1.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ExportCmd$1.class
deleted file mode 100644
index bfcb9bf..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ExportCmd$1.class and /dev/null differ
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
deleted file mode 100644
index 22aa46e..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ExportCmd$2.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ExportCmd$3.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ExportCmd$3.class
deleted file mode 100644
index 946663b..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ExportCmd$3.class and /dev/null differ
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
deleted file mode 100644
index 9aaf960..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ExportCmd$4.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ExportCmd$5.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ExportCmd$5.class
deleted file mode 100644
index 6f9f4b6..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ExportCmd$5.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ExportCmd$6.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ExportCmd$6.class
deleted file mode 100644
index c61efc9..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ExportCmd$6.class and /dev/null differ
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
deleted file mode 100644
index 1d4eb0f..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ExportCmd$7.class and /dev/null differ
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
deleted file mode 100644
index d1a7519..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ExportCmd$8.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ExportCmd.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ExportCmd.class
deleted file mode 100644
index 84af3c1..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ExportCmd.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/GenKeyCmd$1.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/GenKeyCmd$1.class
deleted file mode 100644
index 265b4a4..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/GenKeyCmd$1.class and /dev/null differ
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
deleted file mode 100644
index 24cfab0..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/GenKeyCmd$10.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/GenKeyCmd$11.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/GenKeyCmd$11.class
deleted file mode 100644
index 7ff6712..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/GenKeyCmd$11.class and /dev/null differ
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
deleted file mode 100644
index 7a1e0e9..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/GenKeyCmd$12.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/GenKeyCmd$2.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/GenKeyCmd$2.class
deleted file mode 100644
index 8c101c4..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/GenKeyCmd$2.class and /dev/null differ
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
deleted file mode 100644
index 9225073..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/GenKeyCmd$3.class and /dev/null differ
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
deleted file mode 100644
index 1958f3d..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/GenKeyCmd$4.class and /dev/null differ
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
deleted file mode 100644
index 805197d..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/GenKeyCmd$5.class and /dev/null differ
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
deleted file mode 100644
index 6d14700..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/GenKeyCmd$6.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/GenKeyCmd$7.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/GenKeyCmd$7.class
deleted file mode 100644
index 8438893..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/GenKeyCmd$7.class and /dev/null differ
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
deleted file mode 100644
index 715f1be..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/GenKeyCmd$8.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/GenKeyCmd$9.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/GenKeyCmd$9.class
deleted file mode 100644
index a0b1bba..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/GenKeyCmd$9.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/GenKeyCmd.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/GenKeyCmd.class
deleted file mode 100644
index 96a5294..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/GenKeyCmd.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/IdentityDBCmd$1.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/IdentityDBCmd$1.class
deleted file mode 100644
index 83f604a..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/IdentityDBCmd$1.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/IdentityDBCmd$2.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/IdentityDBCmd$2.class
deleted file mode 100644
index 90e2114..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/IdentityDBCmd$2.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/IdentityDBCmd$3.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/IdentityDBCmd$3.class
deleted file mode 100644
index cb495c0..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/IdentityDBCmd$3.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/IdentityDBCmd$4.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/IdentityDBCmd$4.class
deleted file mode 100644
index 0550d7d..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/IdentityDBCmd$4.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/IdentityDBCmd$5.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/IdentityDBCmd$5.class
deleted file mode 100644
index b73da2c..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/IdentityDBCmd$5.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/IdentityDBCmd$6.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/IdentityDBCmd$6.class
deleted file mode 100644
index c47ced6..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/IdentityDBCmd$6.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/IdentityDBCmd.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/IdentityDBCmd.class
deleted file mode 100644
index b002f93..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/IdentityDBCmd.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ImportCmd$1.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ImportCmd$1.class
deleted file mode 100644
index a122bc6..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ImportCmd$1.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ImportCmd$10.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ImportCmd$10.class
deleted file mode 100644
index d7dd85a..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ImportCmd$10.class and /dev/null differ
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
deleted file mode 100644
index c1f4988..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ImportCmd$2.class and /dev/null differ
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
deleted file mode 100644
index e02f774..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ImportCmd$3.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ImportCmd$4.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ImportCmd$4.class
deleted file mode 100644
index 3768d81..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ImportCmd$4.class and /dev/null differ
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
deleted file mode 100644
index 9cd40fd..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ImportCmd$5.class and /dev/null differ
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
deleted file mode 100644
index adeba9d..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ImportCmd$6.class and /dev/null differ
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
deleted file mode 100644
index c6b2e47..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ImportCmd$7.class and /dev/null differ
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
deleted file mode 100644
index 269af2b..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ImportCmd$8.class and /dev/null differ
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
deleted file mode 100644
index e93f357..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ImportCmd$9.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ImportCmd.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ImportCmd.class
deleted file mode 100644
index e559643..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ImportCmd.class and /dev/null differ
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
deleted file mode 100644
index cfe315d..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/KeyCloneCmd$1.class and /dev/null differ
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
deleted file mode 100644
index b7b6a91..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/KeyCloneCmd$2.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/KeyCloneCmd$3.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/KeyCloneCmd$3.class
deleted file mode 100644
index 73f9233..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/KeyCloneCmd$3.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/KeyCloneCmd$4.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/KeyCloneCmd$4.class
deleted file mode 100644
index 5904a98..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/KeyCloneCmd$4.class and /dev/null differ
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
deleted file mode 100644
index 7511cc3..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/KeyCloneCmd$5.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/KeyCloneCmd$6.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/KeyCloneCmd$6.class
deleted file mode 100644
index f42087f..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/KeyCloneCmd$6.class and /dev/null differ
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
deleted file mode 100644
index e6ccd4e..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/KeyCloneCmd$7.class and /dev/null differ
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
deleted file mode 100644
index c1247a5..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/KeyCloneCmd$8.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/KeyCloneCmd$9.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/KeyCloneCmd$9.class
deleted file mode 100644
index 888203b..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/KeyCloneCmd$9.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/KeyCloneCmd.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/KeyCloneCmd.class
deleted file mode 100644
index d211eed..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/KeyCloneCmd.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/KeyPasswdCmd$1.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/KeyPasswdCmd$1.class
deleted file mode 100644
index ca06350..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/KeyPasswdCmd$1.class and /dev/null differ
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
deleted file mode 100644
index 5c4cb36..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/KeyPasswdCmd$2.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/KeyPasswdCmd$3.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/KeyPasswdCmd$3.class
deleted file mode 100644
index 3adcc94..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/KeyPasswdCmd$3.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/KeyPasswdCmd$4.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/KeyPasswdCmd$4.class
deleted file mode 100644
index 2240bbc..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/KeyPasswdCmd$4.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/KeyPasswdCmd$5.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/KeyPasswdCmd$5.class
deleted file mode 100644
index cdfd632..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/KeyPasswdCmd$5.class and /dev/null differ
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
deleted file mode 100644
index ee0755e..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/KeyPasswdCmd$6.class and /dev/null differ
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
deleted file mode 100644
index 5e52063..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/KeyPasswdCmd$7.class and /dev/null differ
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
deleted file mode 100644
index 641550b..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/KeyPasswdCmd$8.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/KeyPasswdCmd.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/KeyPasswdCmd.class
deleted file mode 100644
index 2913f92..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/KeyPasswdCmd.class and /dev/null differ
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
deleted file mode 100644
index a9d1860..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ListCmd$1.class and /dev/null differ
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
deleted file mode 100644
index 3bb2623..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ListCmd$2.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ListCmd$3.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ListCmd$3.class
deleted file mode 100644
index 42c7078..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ListCmd$3.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ListCmd$4.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ListCmd$4.class
deleted file mode 100644
index 23c02c4..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ListCmd$4.class and /dev/null differ
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
deleted file mode 100644
index 435f92d..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ListCmd$5.class and /dev/null differ
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
deleted file mode 100644
index d1f9fce..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ListCmd$6.class and /dev/null differ
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
deleted file mode 100644
index 84281a4..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ListCmd$7.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ListCmd.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ListCmd.class
deleted file mode 100644
index 8b93686..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ListCmd.class and /dev/null differ
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
deleted file mode 100644
index c545200..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/Main$NoParseOption.class and /dev/null differ
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
deleted file mode 100644
index c805024..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/Main$ShutdownHook.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/Main.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/Main.class
deleted file mode 100644
index 92e58ab..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/Main.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/Messages.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/Messages.class
deleted file mode 100644
index 60939a6..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/Messages.class and /dev/null differ
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
deleted file mode 100644
index c235028..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/PrintCertCmd$1.class and /dev/null differ
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
deleted file mode 100644
index 796154c..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/PrintCertCmd$2.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/PrintCertCmd.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/PrintCertCmd.class
deleted file mode 100644
index f328b54..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/PrintCertCmd.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/SelfCertCmd$1.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/SelfCertCmd$1.class
deleted file mode 100644
index 22f45be..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/SelfCertCmd$1.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/SelfCertCmd$10.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/SelfCertCmd$10.class
deleted file mode 100644
index b605bd9..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/SelfCertCmd$10.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/SelfCertCmd$2.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/SelfCertCmd$2.class
deleted file mode 100644
index a53b200..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/SelfCertCmd$2.class and /dev/null differ
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
deleted file mode 100644
index 984b442..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/SelfCertCmd$3.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/SelfCertCmd$4.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/SelfCertCmd$4.class
deleted file mode 100644
index ef51b17..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/SelfCertCmd$4.class and /dev/null differ
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
deleted file mode 100644
index 9cd2cf6..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/SelfCertCmd$5.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/SelfCertCmd$6.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/SelfCertCmd$6.class
deleted file mode 100644
index 248399d..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/SelfCertCmd$6.class and /dev/null differ
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
deleted file mode 100644
index d6ad472..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/SelfCertCmd$7.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/SelfCertCmd$8.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/SelfCertCmd$8.class
deleted file mode 100644
index c993d54..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/SelfCertCmd$8.class and /dev/null differ
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
deleted file mode 100644
index c53b21a..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/SelfCertCmd$9.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/SelfCertCmd.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/SelfCertCmd.class
deleted file mode 100644
index 136cfa6..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/SelfCertCmd.class and /dev/null differ
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
deleted file mode 100644
index 1c2dcac..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/StorePasswdCmd$1.class and /dev/null differ
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
deleted file mode 100644
index 9221f85..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/StorePasswdCmd$2.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/StorePasswdCmd$3.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/StorePasswdCmd$3.class
deleted file mode 100644
index dd58e5a..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/StorePasswdCmd$3.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/StorePasswdCmd$4.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/StorePasswdCmd$4.class
deleted file mode 100644
index aa5557d..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/StorePasswdCmd$4.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/StorePasswdCmd$5.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/StorePasswdCmd$5.class
deleted file mode 100644
index 75c316a..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/StorePasswdCmd$5.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/StorePasswdCmd$6.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/StorePasswdCmd$6.class
deleted file mode 100644
index ca9c253..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/StorePasswdCmd$6.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/StorePasswdCmd.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/StorePasswdCmd.class
deleted file mode 100644
index fe9ea3e..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/StorePasswdCmd.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/native2ascii/Messages.class b/libjava/classpath/tools/classes/gnu/classpath/tools/native2ascii/Messages.class
deleted file mode 100644
index 8162e11..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/native2ascii/Messages.class and /dev/null differ
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
deleted file mode 100644
index 7d8087c..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/native2ascii/Native2ASCII$1.class and /dev/null differ
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
deleted file mode 100644
index be26525..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/native2ascii/Native2ASCII$2.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/native2ascii/Native2ASCII$3.class b/libjava/classpath/tools/classes/gnu/classpath/tools/native2ascii/Native2ASCII$3.class
deleted file mode 100644
index 841b795..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/native2ascii/Native2ASCII$3.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/native2ascii/Native2ASCII$HandleFile.class b/libjava/classpath/tools/classes/gnu/classpath/tools/native2ascii/Native2ASCII$HandleFile.class
deleted file mode 100644
index e7f6eab..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/native2ascii/Native2ASCII$HandleFile.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/native2ascii/Native2ASCII.class b/libjava/classpath/tools/classes/gnu/classpath/tools/native2ascii/Native2ASCII.class
deleted file mode 100644
index 3a2bd54..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/native2ascii/Native2ASCII.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main$1.class b/libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main$1.class
deleted file mode 100644
index a93676b..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main$1.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main$2.class b/libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main$2.class
deleted file mode 100644
index 2e73084..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main$2.class and /dev/null differ
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
deleted file mode 100644
index c785c7a..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main$3.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main$4.class b/libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main$4.class
deleted file mode 100644
index 31d7a46..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main$4.class and /dev/null differ
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
deleted file mode 100644
index 04b7561..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main$5.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main.class b/libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main.class
deleted file mode 100644
index 306de24..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Messages.class b/libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Messages.class
deleted file mode 100644
index f80eceb..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Messages.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/orbd/PersistentContext.class b/libjava/classpath/tools/classes/gnu/classpath/tools/orbd/PersistentContext.class
deleted file mode 100644
index fef9e8b..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/orbd/PersistentContext.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/orbd/PersistentContextMap.class b/libjava/classpath/tools/classes/gnu/classpath/tools/orbd/PersistentContextMap.class
deleted file mode 100644
index 09d84c0..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/orbd/PersistentContextMap.class and /dev/null differ
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
deleted file mode 100644
index 843d741..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/orbd/PersistentMap$Entry.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/orbd/PersistentMap.class b/libjava/classpath/tools/classes/gnu/classpath/tools/orbd/PersistentMap.class
deleted file mode 100644
index 4fd26d6..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/orbd/PersistentMap.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/AbstractMethodGenerator.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/AbstractMethodGenerator.class
deleted file mode 100644
index a930096..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/AbstractMethodGenerator.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/ClassRmicCompiler$MethodRef.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/ClassRmicCompiler$MethodRef.class
deleted file mode 100644
index c5de4c8..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/ClassRmicCompiler$MethodRef.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/ClassRmicCompiler.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/ClassRmicCompiler.class
deleted file mode 100644
index 30f6e12..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/ClassRmicCompiler.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/CompilationError.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/CompilationError.class
deleted file mode 100644
index 8953e5c..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/CompilationError.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Generator.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Generator.class
deleted file mode 100644
index 2161af5..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Generator.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/GiopIo.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/GiopIo.class
deleted file mode 100644
index 2f8ed63..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/GiopIo.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/HashFinder.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/HashFinder.class
deleted file mode 100644
index 16602c5..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/HashFinder.class and /dev/null differ
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
deleted file mode 100644
index a1d9d5a..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$1.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$10.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$10.class
deleted file mode 100644
index 2fca747..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$10.class and /dev/null differ
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
deleted file mode 100644
index 595b1c3..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$11.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$12.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$12.class
deleted file mode 100644
index 25b43e1..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$12.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$13.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$13.class
deleted file mode 100644
index 164a8b1..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$13.class and /dev/null differ
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
deleted file mode 100644
index 525c849..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$14.class and /dev/null differ
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
deleted file mode 100644
index e49a39d..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$15.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$16.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$16.class
deleted file mode 100644
index 7dc9274..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$16.class and /dev/null differ
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
deleted file mode 100644
index d162862..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$17.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$18.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$18.class
deleted file mode 100644
index 5eb04cf..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$18.class and /dev/null differ
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
deleted file mode 100644
index 4ab4ef5..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$2.class and /dev/null differ
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
deleted file mode 100644
index f4e3f56..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$3.class and /dev/null differ
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
deleted file mode 100644
index bff2a62..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$4.class and /dev/null differ
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
deleted file mode 100644
index 1e8a4a4..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$5.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$6.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$6.class
deleted file mode 100644
index 6472ff9..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$6.class and /dev/null differ
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
deleted file mode 100644
index 68bc216..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$7.class and /dev/null differ
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
deleted file mode 100644
index 57fa66e4..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$8.class and /dev/null differ
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
deleted file mode 100644
index 1aafd58..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$9.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main.class
deleted file mode 100644
index 7a54ba1..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Messages.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Messages.class
deleted file mode 100644
index 1a73827..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Messages.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/MethodGenerator.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/MethodGenerator.class
deleted file mode 100644
index 1dcbac8..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/MethodGenerator.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/RMICException.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/RMICException.class
deleted file mode 100644
index 221530b..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/RMICException.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/RmiMethodGenerator.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/RmiMethodGenerator.class
deleted file mode 100644
index e6a69af..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/RmiMethodGenerator.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/RmicBackend.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/RmicBackend.class
deleted file mode 100644
index 7c08d1a..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/RmicBackend.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/SourceGiopRmicCompiler.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/SourceGiopRmicCompiler.class
deleted file mode 100644
index ad70fb6..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/SourceGiopRmicCompiler.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/SourceRmicCompiler.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/SourceRmicCompiler.class
deleted file mode 100644
index a8f2f7a..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/SourceRmicCompiler.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Variables.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Variables.class
deleted file mode 100644
index ebc8980..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Variables.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/WrapUnWrapper.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/WrapUnWrapper.class
deleted file mode 100644
index f1518ea..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/WrapUnWrapper.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmid/ActivationSystemImpl.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmid/ActivationSystemImpl.class
deleted file mode 100644
index a40f04b..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/rmid/ActivationSystemImpl.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmid/ActivationSystemImpl_Stub.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmid/ActivationSystemImpl_Stub.class
deleted file mode 100644
index 8b798b3..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/rmid/ActivationSystemImpl_Stub.class and /dev/null differ
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
deleted file mode 100644
index 734ee8e..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/rmid/Main$1.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmid/Main$2.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmid/Main$2.class
deleted file mode 100644
index ed0bbd5..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/rmid/Main$2.class and /dev/null differ
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
deleted file mode 100644
index ec4d938..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/rmid/Main$3.class and /dev/null differ
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
deleted file mode 100644
index 3e135b6..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/rmid/Main$4.class and /dev/null differ
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
deleted file mode 100644
index e1262c2..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/rmid/Main$5.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmid/Main$6.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmid/Main$6.class
deleted file mode 100644
index 4857ddf..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/rmid/Main$6.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmid/Main.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmid/Main.class
deleted file mode 100644
index 5e51a69..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/rmid/Main.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmid/Messages.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmid/Messages.class
deleted file mode 100644
index 0c63922..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/rmid/Messages.class and /dev/null differ
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
deleted file mode 100644
index e452364..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/rmid/PersistentBidiHashTable$AdaptedReader.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmid/PersistentBidiHashTable$WriteToDiskTask.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmid/PersistentBidiHashTable$WriteToDiskTask.class
deleted file mode 100644
index d2bf71d..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/rmid/PersistentBidiHashTable$WriteToDiskTask.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmid/PersistentBidiHashTable.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmid/PersistentBidiHashTable.class
deleted file mode 100644
index f7f22a0..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/rmid/PersistentBidiHashTable.class and /dev/null differ
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
deleted file mode 100644
index 997c9aa..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/rmiregistry/Main$1.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmiregistry/Main$2.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmiregistry/Main$2.class
deleted file mode 100644
index c085e48..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/rmiregistry/Main$2.class and /dev/null differ
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
deleted file mode 100644
index 89f61c9..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/rmiregistry/Main$3.class and /dev/null differ
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
deleted file mode 100644
index d202e7f..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/rmiregistry/Main$4.class and /dev/null differ
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
deleted file mode 100644
index 4f96cb7..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/rmiregistry/Main$5.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmiregistry/Main$6.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmiregistry/Main$6.class
deleted file mode 100644
index 34ef99e..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/rmiregistry/Main$6.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmiregistry/Main.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmiregistry/Main.class
deleted file mode 100644
index 3c80e67..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/rmiregistry/Main.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmiregistry/Messages.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmiregistry/Messages.class
deleted file mode 100644
index b100ea7..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/rmiregistry/Messages.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmiregistry/PersistentHashTable$WriteToDiskTask.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmiregistry/PersistentHashTable$WriteToDiskTask.class
deleted file mode 100644
index f08619a..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/rmiregistry/PersistentHashTable$WriteToDiskTask.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmiregistry/PersistentHashTable.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmiregistry/PersistentHashTable.class
deleted file mode 100644
index 92304dc..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/rmiregistry/PersistentHashTable.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmiregistry/RegistryImpl.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmiregistry/RegistryImpl.class
deleted file mode 100644
index a369b06..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/rmiregistry/RegistryImpl.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmiregistry/RegistryImpl_Skel.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmiregistry/RegistryImpl_Skel.class
deleted file mode 100644
index 50d6faf..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/rmiregistry/RegistryImpl_Skel.class and /dev/null differ
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
deleted file mode 100644
index 19b1248..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/rmiregistry/RegistryImpl_Stub.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/serialver/Messages.class b/libjava/classpath/tools/classes/gnu/classpath/tools/serialver/Messages.class
deleted file mode 100644
index d670a68..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/serialver/Messages.class and /dev/null differ
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
deleted file mode 100644
index 5d3be82..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/serialver/SerialVer$1.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/serialver/SerialVer$2.class b/libjava/classpath/tools/classes/gnu/classpath/tools/serialver/SerialVer$2.class
deleted file mode 100644
index a0a4470..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/serialver/SerialVer$2.class and /dev/null differ
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
deleted file mode 100644
index 5a544fd..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/serialver/SerialVer$3.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/serialver/SerialVer.class b/libjava/classpath/tools/classes/gnu/classpath/tools/serialver/SerialVer.class
deleted file mode 100644
index fd84c77..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/serialver/SerialVer.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/AuthorTaglet$EmailReplacement.class b/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/AuthorTaglet$EmailReplacement.class
deleted file mode 100644
index 1cc5913..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/AuthorTaglet$EmailReplacement.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/AuthorTaglet.class b/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/AuthorTaglet.class
deleted file mode 100644
index 5050e4f..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/AuthorTaglet.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/CodeTaglet.class b/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/CodeTaglet.class
deleted file mode 100644
index 051e784..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/CodeTaglet.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/CopyrightTaglet.class b/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/CopyrightTaglet.class
deleted file mode 100644
index d957f4c..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/CopyrightTaglet.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/DeprecatedTaglet.class b/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/DeprecatedTaglet.class
deleted file mode 100644
index 5e5946e..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/DeprecatedTaglet.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/GenericTaglet.class b/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/GenericTaglet.class
deleted file mode 100644
index 6b767ee..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/GenericTaglet.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/GnuExtendedTaglet.class b/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/GnuExtendedTaglet.class
deleted file mode 100644
index b05eabb..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/GnuExtendedTaglet.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/SinceTaglet.class b/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/SinceTaglet.class
deleted file mode 100644
index 4848140..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/SinceTaglet.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/TagletContext.class b/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/TagletContext.class
deleted file mode 100644
index 9eb4b59..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/TagletContext.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/ValueTaglet.class b/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/ValueTaglet.class
deleted file mode 100644
index 185f8e4..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/ValueTaglet.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/VersionTaglet.class b/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/VersionTaglet.class
deleted file mode 100644
index cde2ca6..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/VersionTaglet.class and /dev/null differ
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
deleted file mode 100644
index ee6404f..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/tnameserv/Main$1.class and /dev/null differ
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
deleted file mode 100644
index 620e9d4..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/tnameserv/Main$2.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/tnameserv/Main.class b/libjava/classpath/tools/classes/gnu/classpath/tools/tnameserv/Main.class
deleted file mode 100644
index f09eb77..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/tnameserv/Main.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/tnameserv/Messages.class b/libjava/classpath/tools/classes/gnu/classpath/tools/tnameserv/Messages.class
deleted file mode 100644
index c9b9175..0000000
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/tnameserv/Messages.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/gcj/tools/gc_analyze/BlockMap$PtrMarks.class b/libjava/classpath/tools/classes/gnu/gcj/tools/gc_analyze/BlockMap$PtrMarks.class
deleted file mode 100644
index 59094b9..0000000
Binary files a/libjava/classpath/tools/classes/gnu/gcj/tools/gc_analyze/BlockMap$PtrMarks.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/gcj/tools/gc_analyze/BlockMap$SizeKind.class b/libjava/classpath/tools/classes/gnu/gcj/tools/gc_analyze/BlockMap$SizeKind.class
deleted file mode 100644
index 10f7cd4..0000000
Binary files a/libjava/classpath/tools/classes/gnu/gcj/tools/gc_analyze/BlockMap$SizeKind.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/gcj/tools/gc_analyze/BlockMap.class b/libjava/classpath/tools/classes/gnu/gcj/tools/gc_analyze/BlockMap.class
deleted file mode 100644
index a95d09c..0000000
Binary files a/libjava/classpath/tools/classes/gnu/gcj/tools/gc_analyze/BlockMap.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/gcj/tools/gc_analyze/BytePtr.class b/libjava/classpath/tools/classes/gnu/gcj/tools/gc_analyze/BytePtr.class
deleted file mode 100644
index c5a812e..0000000
Binary files a/libjava/classpath/tools/classes/gnu/gcj/tools/gc_analyze/BytePtr.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/gcj/tools/gc_analyze/ItemList.class b/libjava/classpath/tools/classes/gnu/gcj/tools/gc_analyze/ItemList.class
deleted file mode 100644
index 9dede17..0000000
Binary files a/libjava/classpath/tools/classes/gnu/gcj/tools/gc_analyze/ItemList.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/gcj/tools/gc_analyze/MemoryAnalyze$1$Info.class b/libjava/classpath/tools/classes/gnu/gcj/tools/gc_analyze/MemoryAnalyze$1$Info.class
deleted file mode 100644
index 139b2f7..0000000
Binary files a/libjava/classpath/tools/classes/gnu/gcj/tools/gc_analyze/MemoryAnalyze$1$Info.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/gcj/tools/gc_analyze/MemoryAnalyze$1.class b/libjava/classpath/tools/classes/gnu/gcj/tools/gc_analyze/MemoryAnalyze$1.class
deleted file mode 100644
index b4df37b..0000000
Binary files a/libjava/classpath/tools/classes/gnu/gcj/tools/gc_analyze/MemoryAnalyze$1.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/gcj/tools/gc_analyze/MemoryAnalyze$2.class b/libjava/classpath/tools/classes/gnu/gcj/tools/gc_analyze/MemoryAnalyze$2.class
deleted file mode 100644
index 62b81fc..0000000
Binary files a/libjava/classpath/tools/classes/gnu/gcj/tools/gc_analyze/MemoryAnalyze$2.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/gcj/tools/gc_analyze/MemoryAnalyze$3.class b/libjava/classpath/tools/classes/gnu/gcj/tools/gc_analyze/MemoryAnalyze$3.class
deleted file mode 100644
index 8c6fb89..0000000
Binary files a/libjava/classpath/tools/classes/gnu/gcj/tools/gc_analyze/MemoryAnalyze$3.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/gcj/tools/gc_analyze/MemoryAnalyze$4.class b/libjava/classpath/tools/classes/gnu/gcj/tools/gc_analyze/MemoryAnalyze$4.class
deleted file mode 100644
index 427ee70..0000000
Binary files a/libjava/classpath/tools/classes/gnu/gcj/tools/gc_analyze/MemoryAnalyze$4.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/gcj/tools/gc_analyze/MemoryAnalyze$OptionParser.class b/libjava/classpath/tools/classes/gnu/gcj/tools/gc_analyze/MemoryAnalyze$OptionParser.class
deleted file mode 100644
index c600ead..0000000
Binary files a/libjava/classpath/tools/classes/gnu/gcj/tools/gc_analyze/MemoryAnalyze$OptionParser.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/gcj/tools/gc_analyze/MemoryAnalyze$SubstringComparator.class b/libjava/classpath/tools/classes/gnu/gcj/tools/gc_analyze/MemoryAnalyze$SubstringComparator.class
deleted file mode 100644
index 6205c19..0000000
Binary files a/libjava/classpath/tools/classes/gnu/gcj/tools/gc_analyze/MemoryAnalyze$SubstringComparator.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/gcj/tools/gc_analyze/MemoryAnalyze.class b/libjava/classpath/tools/classes/gnu/gcj/tools/gc_analyze/MemoryAnalyze.class
deleted file mode 100644
index 9996170..0000000
Binary files a/libjava/classpath/tools/classes/gnu/gcj/tools/gc_analyze/MemoryAnalyze.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/gcj/tools/gc_analyze/MemoryMap$Range.class b/libjava/classpath/tools/classes/gnu/gcj/tools/gc_analyze/MemoryMap$Range.class
deleted file mode 100644
index 72d9ee0..0000000
Binary files a/libjava/classpath/tools/classes/gnu/gcj/tools/gc_analyze/MemoryMap$Range.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/gcj/tools/gc_analyze/MemoryMap$RangeComparator.class b/libjava/classpath/tools/classes/gnu/gcj/tools/gc_analyze/MemoryMap$RangeComparator.class
deleted file mode 100644
index 7f2521b..0000000
Binary files a/libjava/classpath/tools/classes/gnu/gcj/tools/gc_analyze/MemoryMap$RangeComparator.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/gcj/tools/gc_analyze/MemoryMap.class b/libjava/classpath/tools/classes/gnu/gcj/tools/gc_analyze/MemoryMap.class
deleted file mode 100644
index 24b70a2..0000000
Binary files a/libjava/classpath/tools/classes/gnu/gcj/tools/gc_analyze/MemoryMap.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/gcj/tools/gc_analyze/ObjectMap$ObjectItem.class b/libjava/classpath/tools/classes/gnu/gcj/tools/gc_analyze/ObjectMap$ObjectItem.class
deleted file mode 100644
index 4a27d3f..0000000
Binary files a/libjava/classpath/tools/classes/gnu/gcj/tools/gc_analyze/ObjectMap$ObjectItem.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/gcj/tools/gc_analyze/ObjectMap.class b/libjava/classpath/tools/classes/gnu/gcj/tools/gc_analyze/ObjectMap.class
deleted file mode 100644
index 9c7d96d..0000000
Binary files a/libjava/classpath/tools/classes/gnu/gcj/tools/gc_analyze/ObjectMap.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/gcj/tools/gc_analyze/SymbolLookup.class b/libjava/classpath/tools/classes/gnu/gcj/tools/gc_analyze/SymbolLookup.class
deleted file mode 100644
index 7099959..0000000
Binary files a/libjava/classpath/tools/classes/gnu/gcj/tools/gc_analyze/SymbolLookup.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/gcj/tools/gc_analyze/SymbolTable.class b/libjava/classpath/tools/classes/gnu/gcj/tools/gc_analyze/SymbolTable.class
deleted file mode 100644
index 5195657..0000000
Binary files a/libjava/classpath/tools/classes/gnu/gcj/tools/gc_analyze/SymbolTable.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/gnu/gcj/tools/gc_analyze/ToolPrefix.class b/libjava/classpath/tools/classes/gnu/gcj/tools/gc_analyze/ToolPrefix.class
deleted file mode 100644
index 2224a23..0000000
Binary files a/libjava/classpath/tools/classes/gnu/gcj/tools/gc_analyze/ToolPrefix.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/sun/rmi/rmic/Main.class b/libjava/classpath/tools/classes/sun/rmi/rmic/Main.class
deleted file mode 100644
index 42ce06a..0000000
Binary files a/libjava/classpath/tools/classes/sun/rmi/rmic/Main.class and /dev/null differ
diff --git a/libjava/classpath/tools/classes/sun/rmi/rmic/Messages.class b/libjava/classpath/tools/classes/sun/rmi/rmic/Messages.class
deleted file mode 100644
index 87b8b98..0000000
Binary files a/libjava/classpath/tools/classes/sun/rmi/rmic/Messages.class and /dev/null differ
diff --git a/libjava/classpath/tools/com/sun/javadoc/ClassDoc.java b/libjava/classpath/tools/com/sun/javadoc/ClassDoc.java
deleted file mode 100644
index 6309f94..0000000
--- a/libjava/classpath/tools/com/sun/javadoc/ClassDoc.java
+++ /dev/null
@@ -1,321 +0,0 @@
-/* ClassDoc.java -- Document a Java class or interface
- Copyright (C) 1999 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-02110-1301 USA.
-
-Linking this library statically or dynamically with other modules is
-making a combined work based on this library. Thus, the terms and
-conditions of the GNU General Public License cover the whole
-combination.
-
-As a special exception, the copyright holders of this library give you
-permission to link this library with independent modules to produce an
-executable, regardless of the license terms of these independent
-modules, and to copy and distribute the resulting executable under
-terms of your choice, provided that you also meet, for each linked
-independent module, the terms and conditions of the license of that
-module. An independent module is a module which is not derived from
-or based on this library. If you modify this library, you may extend
-this exception to your version of the library, but you are not
-obligated to do so. If you do not wish to do so, delete this
-exception statement from your version. */
-
-
-package com.sun.javadoc;
-
-public interface ClassDoc extends ProgramElementDoc, Type
-{
-
-/**
- * This method tests whether or not the class represented by this object
- * is abstract.
- *
- * @return true if the class is abstract, false,
- * otherwise.
- */
-public abstract boolean
-isAbstract();
-
-/*************************************************************************/
-
-/**
- * This method tests whether or not the class represented by this object
- * is serializable. That is, whether or not the class implements the
- * java.io.Serializable interface. This includes classes
- * which are externalizable.
- *
- * @return true if the class is serializable,
- * false otherwise.
- */
-public abstract boolean
-isSerializable();
-
-/*************************************************************************/
-
-/**
- * This method tests whether or not the class represented by this object
- * is externalizable. That is, whether or not the class implements the
- * java.io.Externalizable interface.
- *
- * @return true if the class is externalizable,
- * false otherwise.
- */
-public abstract boolean
-isExternalizable();
-
-/*************************************************************************/
-
-/**
- * This method returns the serialization methods for the class
- * represented by this object. Is the custom readObject/writeObject
- * methods?
- *
- * @return The serialization methods for this class.
- */
-public abstract MethodDoc[]
-serializationMethods();
-
-/*************************************************************************/
-
-/**
- * This method returns the list of fields that are serialized in this
- * class. This will return either the list of fields with an
- * "@serial" declaration, or, if it exists, the
- * serialPersistentField field.
- *
- * @return The list of serializable fields.
- */
-public abstract FieldDoc[]
-serializableFields();
-
-/*************************************************************************/
-
-/**
- * This method tests whether or not the class represented by this object
- * specifically defines its serializable fields in a
- * serialPersistentFields field.
- *
- * @return true if this class explicitly defines its
- * serializable fields, false otherwise.
- */
-public abstract boolean
-definesSerializableFields();
-
-/*************************************************************************/
-
-/**
- * This method returns the superclass of the class represented by this
- * object.
- *
- * @return The superclass of this class.
- */
-public abstract ClassDoc
-superclass();
-
-/*************************************************************************/
-
-/**
- * This method tests whether or not the class represented by this object is
- * a subclass of the specified class.
- *
- * @param cls The ClassDoc object of the class to test against.
- *
- * @return true if this class is a subclass of the specified
- * class, false otherwise.
- */
-public abstract boolean
-subclassOf(ClassDoc cls);
-
-/*************************************************************************/
-
-/**
- * This method returns this list of interfaces implemented (or in the case
- * of interfaces, extended) by this class. This list will only include
- * interfaces directly implemented by this class, not those inherited by
- * interfaced implemented in this class.
- *
- * @return The list of interfaces this class implements.
- */
-public abstract ClassDoc[]
-interfaces();
-
-/*************************************************************************/
-
-/**
- * This method returns the list of fields that are visible to the user in
- * this class, or the list of all fields in this class.
- *
- * @param filtered if true, only return visible (included) fields;
- * otherwise, return all fields.
- *
- * @return The list of visible fields in this class, or the list of
- * all fields in this class.
- */
-public abstract FieldDoc[]
-fields(boolean filtered);
-
-/*************************************************************************/
-
-/**
- * This method returns the list of fields that are visible to the user in
- * this class. Does this depend on the -private -protected, etc flags
- * passed to javadoc?
- *
- * @return The list of visible fields in this class.
- */
-public abstract FieldDoc[]
-fields();
-
-/*************************************************************************/
-
-/**
- * This method returns either the list of methods that are visible to
- * the user in the class represented by this object, or a list of all
- * methods, excluding constructor methods.
- *
- * @param filtered if true, only return visible (included) methods;
- * otherwise, return all methods.
- *
- * @return The list of all methods in this class, or the list of
- * visible methods in this class.
- */
-public abstract MethodDoc[]
-methods(boolean filtered);
-
-/*************************************************************************/
-
-/**
- * This method returns the list of methods that are visible to the user in
- * the class represented by this object, excluding constructor methods.
- *
- * @return The list of visible methods in this class.
- */
-public abstract MethodDoc[]
-methods();
-
-/*************************************************************************/
-
-/**
- * This method returns either the list of constructors that are
- * visible to the user in the class represented by this object, or
- * the list of all constructors.
- *
- * @param filtered if true, only return visible (included)
- * constructors; otherwise, return all constructors.
- *
- * @return The list of all constructors in this class, or the list
- * of visible constructors in this class.
- */
-public abstract ConstructorDoc[]
-constructors(boolean filtered);
-
-/*************************************************************************/
-
-/**
- * This method returns the list of constructors that are visible to the user
- * in the class represented by this object.
- *
- * @return The list visible constructors in this class.
- */
-public abstract ConstructorDoc[]
-constructors();
-
-/*************************************************************************/
-
-/**
- * This method returns the list of inner classes that are visible to
- * the user within the class represented by this object.
- *
- * @return The list of visible inner classes for this object.
- */
-public abstract ClassDoc[]
-innerClasses();
-
-/*************************************************************************/
-
-/**
- * This method returns the list of all inner classes within the class
- * represented by this object, or the list of visible inner classes
- * in this class.
- *
- * @param filtered if true, only return visible (included) inner
- * classes; otherwise, return all inner classes.
- *
- * @return The list of all inner classes for this object, or the list
- * of visible inner classes.
- */
-public abstract ClassDoc[]
-innerClasses(boolean filtered);
-
-/*************************************************************************/
-
-/**
- * This method returns a ClassDoc for the named class. The
- * following search order is used:
- *
- *
- *
Fully qualified class name.
- *
Inner classes within this class.
- *
In the current package.
- *
In the imports for this class.
- *
- *
- * @param name The name of the class to find.
- *
- * @return The requested class, or null if the requested
- * class cannot be found.
- */
-public abstract ClassDoc
-findClass(String name);
-
-/*************************************************************************/
-
-/**
- * This method returns the list of classes that are imported. This
- * excludes any imports of complete packages.
- *
- * @return The list of imported classes.
- */
-public abstract ClassDoc[]
-importedClasses();
-
-/*************************************************************************/
-
-/**
- * This method returns the list of packages that are imported. This
- * excludes any individual class imports.
- *
- * @return The list of imported packages.
- */
-public abstract PackageDoc[]
-importedPackages();
-
-/*************************************************************************/
-
-/**
- * This method returns the formal type parameters of this class.
- * The returned array is empty if the class does not represent a
- * parameterized type.
- *
- * @return The list of type parameters.
- * @since 1.5
- */
-TypeVariable[]
-typeParameters();
-
-} // interface ClassDoc
diff --git a/libjava/classpath/tools/com/sun/javadoc/ConstructorDoc.java b/libjava/classpath/tools/com/sun/javadoc/ConstructorDoc.java
deleted file mode 100644
index 88c8d3d..0000000
--- a/libjava/classpath/tools/com/sun/javadoc/ConstructorDoc.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/* ConstructorDoc.java -- Document a Java class constructor
- Copyright (C) 1999 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-02110-1301 USA.
-
-Linking this library statically or dynamically with other modules is
-making a combined work based on this library. Thus, the terms and
-conditions of the GNU General Public License cover the whole
-combination.
-
-As a special exception, the copyright holders of this library give you
-permission to link this library with independent modules to produce an
-executable, regardless of the license terms of these independent
-modules, and to copy and distribute the resulting executable under
-terms of your choice, provided that you also meet, for each linked
-independent module, the terms and conditions of the license of that
-module. An independent module is a module which is not derived from
-or based on this library. If you modify this library, you may extend
-this exception to your version of the library, but you are not
-obligated to do so. If you do not wish to do so, delete this
-exception statement from your version. */
-
-
-package com.sun.javadoc;
-
-/**
- * This interface is used for documenting constructors.
- */
-public interface ConstructorDoc extends ExecutableMemberDoc
-{
-
-/**
- * This method returns the qualified name of the constructor. What is this
- * really?
- *
- * @return The qualified name of the constructor.
- */
-public abstract String
-qualifiedName();
-
-} // interface ConstructorDoc
diff --git a/libjava/classpath/tools/com/sun/javadoc/Doc.java b/libjava/classpath/tools/com/sun/javadoc/Doc.java
deleted file mode 100644
index f1d82d9..0000000
--- a/libjava/classpath/tools/com/sun/javadoc/Doc.java
+++ /dev/null
@@ -1,264 +0,0 @@
-/* Doc.java -- Model of an item to document.
- Copyright (C) 1999, 2012 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-02110-1301 USA.
-
-Linking this library statically or dynamically with other modules is
-making a combined work based on this library. Thus, the terms and
-conditions of the GNU General Public License cover the whole
-combination.
-
-As a special exception, the copyright holders of this library give you
-permission to link this library with independent modules to produce an
-executable, regardless of the license terms of these independent
-modules, and to copy and distribute the resulting executable under
-terms of your choice, provided that you also meet, for each linked
-independent module, the terms and conditions of the license of that
-module. An independent module is a module which is not derived from
-or based on this library. If you modify this library, you may extend
-this exception to your version of the library, but you are not
-obligated to do so. If you do not wish to do so, delete this
-exception statement from your version. */
-
-
-package com.sun.javadoc;
-
-/**
- * This interface is the super-interface of all items that can have
- * Javadoc comments associated with them.
- */
-public interface Doc extends java.io.Serializable, Comparable
-{
-
-/**
- * This method returns the text of the comment for this item, with all
- * tags stripped.
- *
- * @return The comment text for this item.
- */
-public abstract String
-commentText();
-
-/*************************************************************************/
-
-/**
- * This method returns an array of all the tags in this item.
- *
- * @return An array of tags for this item.
- */
-public abstract Tag[]
-tags();
-
-/*************************************************************************/
-
-/**
- * This method returns an array of all the tags of the specified type
- * in this item.
- *
- * @param tagtype The name of the tag type to return.
- *
- * @return A list of all tags of the specified type.
- */
-public abstract Tag[]
-tags(String tagtype);
-
-/*************************************************************************/
-
-/**
- * This method returns an array of all tags of the "@see" type.
- *
- * @return An array of tags of the "@see" type
- */
-public abstract SeeTag[]
-seeTags();
-
-/*************************************************************************/
-
-/**
- * This method returns the comment text as an array of tags. This will
- * include any inline tags, but no regular tags. Regular text is returned
- * as a type of Text. Inline "@see" tags are returned as
- * type SeeTag.
- *
- * @return The comment text as tags.
- */
-public abstract Tag[]
-inlineTags();
-
-/*************************************************************************/
-
-/**
- * This method returns the first sentence of the comment text as an array
- * of tags. This will include any inline tags, but no regular tags.
- * Regular text is returned as a type of Text. Inline "@see"
- * tags are returned as type SeeTag.
- *
- * @return An array of tags representing the first sentence of the comment
- * text.
- */
-public abstract Tag[]
-firstSentenceTags();
-
-/*************************************************************************/
-
-/**
- * This method returns the text of the comment in an unprocessed format.
- * Any Javadoc tags will remain as written in the text.
- *
- * @return The unprocessed comment text.
- */
-public abstract String
-getRawCommentText();
-
-/*************************************************************************/
-
-/**
- * This method sets the unprocessed comment text for this item.
- *
- * @param rawtext The unprocessed comment text for this itme.
- */
-public abstract void
-setRawCommentText(String rawtext);
-
-/*************************************************************************/
-
-/**
- * This method returns the name of this item.
- *
- * @return The name of this item.
- */
-public abstract String
-name();
-
-/*************************************************************************/
-
-/**
- * This method tests whether or not this item is a field.
- *
- * @return true if this item is a field, false
- * otherwise.
- */
-public abstract boolean
-isField();
-
-/*************************************************************************/
-
-/**
- * This method tests whether or not this item is a method.
- *
- * @return true if this item is a method, false
- * otherwise.
- */
-public abstract boolean
-isMethod();
-
-/*************************************************************************/
-
-/**
- * This method tests whether or not this item is a constructor.
- *
- * @return true if this item is a constructor,
- * false otherwise.
- */
-public abstract boolean
-isConstructor();
-
-/*************************************************************************/
-
-/**
- * This method tests whether or not this item is an interface.
- *
- * @return true if this item is an interface,
- * false otherwise.
- */
-public abstract boolean
-isInterface();
-
-/*************************************************************************/
-
-/**
- * This method tests whether or not this item is an exception.
- *
- * @return true if this item is an exception,
- * false otherwise.
- */
-public abstract boolean
-isException();
-
-/*************************************************************************/
-
-/**
- * This method tests whether or not this item is an error.
- *
- * @return true if this item is an error,
- * false otherwise.
- */
-public abstract boolean
-isError();
-
-/*************************************************************************/
-
-/**
- * This method tests whether or not this item is a class. Interfaces
- * do not count as classes.
- *
- * @return true if this item is a class,
- * false otherwise.
- */
-public abstract boolean
-isClass();
-
-/*************************************************************************/
-
-/**
- * This method tests whether or not this item is an ordinary class. An
- * ordinary class is a class that is not an exception or an error.
- * Interfaces also do not count because they are not considered classes at
- * all.
- *
- * @return true if this item is an ordinary class,
- * false otherwise.
- */
-public abstract boolean
-isOrdinaryClass();
-
-/*************************************************************************/
-
-/**
- * This method tests whether or not this item is part of the active set,
- * whatever that is.
- *
- * @return true if this item is part of the active set,
- * false otherwise.
- */
-public abstract boolean
-isIncluded();
-
-/*************************************************************************/
-
-/**
- * This method returns the location of the item within the Java
- * source code.
- *
- * @return an object describing the file, line and column where this
- * item is defined.
- */
-public abstract SourcePosition
-position();
-
-} // interface Doc
diff --git a/libjava/classpath/tools/com/sun/javadoc/DocErrorReporter.java b/libjava/classpath/tools/com/sun/javadoc/DocErrorReporter.java
deleted file mode 100644
index 2e801b8..0000000
--- a/libjava/classpath/tools/com/sun/javadoc/DocErrorReporter.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/* DocErrorReporter.java -- Log errors/warnings during doc generation.
- Copyright (C) 1999 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-02110-1301 USA.
-
-Linking this library statically or dynamically with other modules is
-making a combined work based on this library. Thus, the terms and
-conditions of the GNU General Public License cover the whole
-combination.
-
-As a special exception, the copyright holders of this library give you
-permission to link this library with independent modules to produce an
-executable, regardless of the license terms of these independent
-modules, and to copy and distribute the resulting executable under
-terms of your choice, provided that you also meet, for each linked
-independent module, the terms and conditions of the license of that
-module. An independent module is a module which is not derived from
-or based on this library. If you modify this library, you may extend
-this exception to your version of the library, but you are not
-obligated to do so. If you do not wish to do so, delete this
-exception statement from your version. */
-
-
-package com.sun.javadoc;
-
-/**
- * This interface provides a mechanism for a doclet to log messages
- * during its run.
- */
-public interface DocErrorReporter
-{
-
-/**
- * This method prints the specified error message.
- *
- * @param err The error message to print.
- */
-public abstract void
-printError(String err);
-
-/*************************************************************************/
-
-/**
- * This method prints the specified warning message.
- *
- * @param warn The warning message to print.
- */
-public abstract void
-printWarning(String warn);
-
-/*************************************************************************/
-
-/**
- * This method prints the specifed message.
- *
- * @param msg The message to print.
- */
-public abstract void
-printNotice(String notice);
-
-} // interface DocErrorReporter
diff --git a/libjava/classpath/tools/com/sun/javadoc/Doclet.java b/libjava/classpath/tools/com/sun/javadoc/Doclet.java
deleted file mode 100644
index 172387e..0000000
--- a/libjava/classpath/tools/com/sun/javadoc/Doclet.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/* Doclet.java -- Doclet API
- Copyright (C) 1999 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-02110-1301 USA.
-
-Linking this library statically or dynamically with other modules is
-making a combined work based on this library. Thus, the terms and
-conditions of the GNU General Public License cover the whole
-combination.
-
-As a special exception, the copyright holders of this library give you
-permission to link this library with independent modules to produce an
-executable, regardless of the license terms of these independent
-modules, and to copy and distribute the resulting executable under
-terms of your choice, provided that you also meet, for each linked
-independent module, the terms and conditions of the license of that
-module. An independent module is a module which is not derived from
-or based on this library. If you modify this library, you may extend
-this exception to your version of the library, but you are not
-obligated to do so. If you do not wish to do so, delete this
-exception statement from your version. */
-
-
-package com.sun.javadoc;
-
-/**
- * This class documents the method that must be implemented by a doclet.
- * It may be used as the superclass of a doclet, but this is not required.
- * As long as the doclet implements the start method, all is ok.
- */
-public abstract class Doclet
-{
-
-/**
- * This is the entry point to a doclet. All doclets must implement this
- * method.
- *
- * @param rd The RootDoc instance for this javadoc run.
- *
- * @return true on success, false on failure.
- */
-public static boolean
-start(RootDoc root)
-{
- return(false);
-}
-
-/*************************************************************************/
-
-/**
- * This method returns the number of arguments to the option, including
- * the option itself. This is not required of doclets.
- *
- * @param opt The option to check.
- *
- * @return The number of arguments to the option, or zero if the option is
- * unknown, or a negative number if an error occurred.
- */
-public static int
-optionLength(String opt)
-{
- return(0);
-}
-
-/*************************************************************************/
-
-/**
- * This method is called to verify that the options supplied by the caller
- * are valid. This is not required of doclets.
- *
- * @param opts The list of options supplied by the user.
- * @param logger A mechanism for this method to report errors to the user.
- *
- * @return true if the options are valid, false
- * otherwise.
- */
-public static boolean
-validOptions(String[][] opts, DocErrorReporter logger)
-{
- return(true);
-}
-
-} // class Doclet
diff --git a/libjava/classpath/tools/com/sun/javadoc/ExecutableMemberDoc.java b/libjava/classpath/tools/com/sun/javadoc/ExecutableMemberDoc.java
deleted file mode 100644
index ac0ca06..0000000
--- a/libjava/classpath/tools/com/sun/javadoc/ExecutableMemberDoc.java
+++ /dev/null
@@ -1,137 +0,0 @@
-/* ExecutableMemberDoc.java -- Document methods and constructors
- Copyright (C) 1999 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-02110-1301 USA.
-
-Linking this library statically or dynamically with other modules is
-making a combined work based on this library. Thus, the terms and
-conditions of the GNU General Public License cover the whole
-combination.
-
-As a special exception, the copyright holders of this library give you
-permission to link this library with independent modules to produce an
-executable, regardless of the license terms of these independent
-modules, and to copy and distribute the resulting executable under
-terms of your choice, provided that you also meet, for each linked
-independent module, the terms and conditions of the license of that
-module. An independent module is a module which is not derived from
-or based on this library. If you modify this library, you may extend
-this exception to your version of the library, but you are not
-obligated to do so. If you do not wish to do so, delete this
-exception statement from your version. */
-
-
-package com.sun.javadoc;
-
-/**
- * This is the super-interface for interfaces describing constructors and
- * methods.
- */
-public interface ExecutableMemberDoc extends MemberDoc
-{
-
-/**
- * This method returns a list of all the execeptions that are declared
- * to be thrown in this method or constructor.
- *
- * @return The list of exceptions for this method.
- */
-public abstract ClassDoc[]
-thrownExceptions();
-
-/*************************************************************************/
-
-/**
- * This method tests whether or not this method/constructor is native.
- *
- * @return true if the method is native, false
- * otherwise.
- */
-public abstract boolean
-isNative();
-
-/*************************************************************************/
-
-/**
- * This method tests whether or not this method/constructor is
- * synchronized.
- *
- * @return true if the method is synchronized,
- * false otherwise.
- */
-public abstract boolean
-isSynchronized();
-
-/*************************************************************************/
-
-/**
- * This method returns the list of parameters for this method/constructor.
- *
- * @return The list of parameters for this method.
- */
-public abstract Parameter[]
-parameters();
-
-/*************************************************************************/
-
-/**
- * This method returns the list of "@throws" and "@exception" tags in this
- * method/constructor.
- *
- * @return The list of exception doc tags.
- */
-public abstract ThrowsTag[]
-throwsTags();
-
-/*************************************************************************/
-
-/**
- * This method return the list of "@param" tags in this method/constructor.
- *
- * @return The list of parameter doc tags for this method.
- */
-public abstract ParamTag[]
-paramTags();
-
-/*************************************************************************/
-
-/**
- * This method returns the signature of this method in pseudo-code format,
- * with fully qualified class references. For example, the method
- * read(String str, boolean bool) would have the signature
- * (java.lang.String, boolean) returned by this method.
- *
- * @return The signature for this method.
- */
-public abstract String
-signature();
-
-/*************************************************************************/
-
-/**
- * This method returns the signature of this method in pseudo-code format,
- * with uqualified class references. For example, the method
- * read(String str, boolean bool) would have the signature
- * (String, boolean) returned by this method.
- *
- * @return The signature for this method.
- */
-public abstract String
-flatSignature();
-
-} // interface ExecutableMemberDoc
diff --git a/libjava/classpath/tools/com/sun/javadoc/FieldDoc.java b/libjava/classpath/tools/com/sun/javadoc/FieldDoc.java
deleted file mode 100644
index 1fd0c7b..0000000
--- a/libjava/classpath/tools/com/sun/javadoc/FieldDoc.java
+++ /dev/null
@@ -1,112 +0,0 @@
-/* FieldDoc.java -- Document a field
- Copyright (C) 1999 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-02110-1301 USA.
-
-Linking this library statically or dynamically with other modules is
-making a combined work based on this library. Thus, the terms and
-conditions of the GNU General Public License cover the whole
-combination.
-
-As a special exception, the copyright holders of this library give you
-permission to link this library with independent modules to produce an
-executable, regardless of the license terms of these independent
-modules, and to copy and distribute the resulting executable under
-terms of your choice, provided that you also meet, for each linked
-independent module, the terms and conditions of the license of that
-module. An independent module is a module which is not derived from
-or based on this library. If you modify this library, you may extend
-this exception to your version of the library, but you are not
-obligated to do so. If you do not wish to do so, delete this
-exception statement from your version. */
-
-
-package com.sun.javadoc;
-
-/**
- * This package is used for documenting fields.
- */
-public interface FieldDoc extends MemberDoc
-{
-
-/**
- * This method returns the type of this field.
- *
- * @return The type of this field.
- */
-public abstract Type
-type();
-
-/*************************************************************************/
-
-/**
- * This method tests whether or not the field is transient.
- *
- * @return true if the field is transient, false
- * otherwise.
- */
-public abstract boolean
-isTransient();
-
-/*************************************************************************/
-
-/**
- * This method tests whether or not the field is volatile.
- *
- * @return true if the field is volatile, false
- * otherwise.
- */
-public abstract boolean
-isVolatile();
-
-/*************************************************************************/
-
-/**
- * This method returns a list of all "@serialField" tags defined in this
- * field.
- *
- * @return The list of "@serialField" tags for this field.
- */
-public abstract SerialFieldTag[]
-serialFieldTags();
-
-/*************************************************************************/
-
-/**
- * This method returns the value of this static field.
- *
- * @return The value of this static field.
- */
-public abstract Object
-constantValue();
-
-
-/*************************************************************************/
-
-/**
- * This method returns the value of this static field converted to a
- * human-readable string.
- *
- * @return The value of this static field as a human-readable string.
- */
-public abstract String
-constantValueExpression();
-
-
-
-} // interface FieldDoc
diff --git a/libjava/classpath/tools/com/sun/javadoc/MemberDoc.java b/libjava/classpath/tools/com/sun/javadoc/MemberDoc.java
deleted file mode 100644
index 9e755bb..0000000
--- a/libjava/classpath/tools/com/sun/javadoc/MemberDoc.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/* MemberDoc.java -- Common ops for documenting fields, methods,
- and constructors
- Copyright (C) 1999 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-02110-1301 USA.
-
-Linking this library statically or dynamically with other modules is
-making a combined work based on this library. Thus, the terms and
-conditions of the GNU General Public License cover the whole
-combination.
-
-As a special exception, the copyright holders of this library give you
-permission to link this library with independent modules to produce an
-executable, regardless of the license terms of these independent
-modules, and to copy and distribute the resulting executable under
-terms of your choice, provided that you also meet, for each linked
-independent module, the terms and conditions of the license of that
-module. An independent module is a module which is not derived from
-or based on this library. If you modify this library, you may extend
-this exception to your version of the library, but you are not
-obligated to do so. If you do not wish to do so, delete this
-exception statement from your version. */
-
-
-package com.sun.javadoc;
-
-/**
- * This is the common super-interface for documentation about fields,
- * methods, and constructors.
- */
-public interface MemberDoc extends ProgramElementDoc
-{
-
-/**
- * This method tests whether the member in question was created implicitly
- * by the compiler.
- *
- * @return true if this member was synthesized by the compiler,
- * false otherwise.
- */
-public abstract boolean
-isSynthetic();
-
-} // interface MemberDoc
diff --git a/libjava/classpath/tools/com/sun/javadoc/MethodDoc.java b/libjava/classpath/tools/com/sun/javadoc/MethodDoc.java
deleted file mode 100644
index 87129ef..0000000
--- a/libjava/classpath/tools/com/sun/javadoc/MethodDoc.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/* MethodDoc.java -- Document a method
- Copyright (C) 1999 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-02110-1301 USA.
-
-Linking this library statically or dynamically with other modules is
-making a combined work based on this library. Thus, the terms and
-conditions of the GNU General Public License cover the whole
-combination.
-
-As a special exception, the copyright holders of this library give you
-permission to link this library with independent modules to produce an
-executable, regardless of the license terms of these independent
-modules, and to copy and distribute the resulting executable under
-terms of your choice, provided that you also meet, for each linked
-independent module, the terms and conditions of the license of that
-module. An independent module is a module which is not derived from
-or based on this library. If you modify this library, you may extend
-this exception to your version of the library, but you are not
-obligated to do so. If you do not wish to do so, delete this
-exception statement from your version. */
-
-
-package com.sun.javadoc;
-
-/**
- * This interface is used for documenting ordinary (ie, non-constructor)
- * methods.
- */
-public interface MethodDoc extends ExecutableMemberDoc
-{
-
-/**
- * This method tests whether or not the method to be documented is abstract.
- *
- * @return true if the method is abstract, false
- * otherwise.
- */
-public abstract boolean
-isAbstract();
-
-/*************************************************************************/
-
-/**
- * This method returns the return type of the method to be documented.
- *
- * @return The return type of the method to be documented.
- */
-public abstract Type
-returnType();
-
-/*************************************************************************/
-
-/**
- * This method returns the class containing the method that this method is
- * overriding.
- *
- * @return The class containing the method that this method is overriding,
- * or null if this class is not overriding a method.
- */
-public abstract ClassDoc
-overriddenClass();
-
-} // interface MethodDoc
diff --git a/libjava/classpath/tools/com/sun/javadoc/PackageDoc.java b/libjava/classpath/tools/com/sun/javadoc/PackageDoc.java
deleted file mode 100644
index 4518b4e..0000000
--- a/libjava/classpath/tools/com/sun/javadoc/PackageDoc.java
+++ /dev/null
@@ -1,108 +0,0 @@
-/* PackageDoc.java -- Document a package
- Copyright (C) 1999 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-02110-1301 USA.
-
-Linking this library statically or dynamically with other modules is
-making a combined work based on this library. Thus, the terms and
-conditions of the GNU General Public License cover the whole
-combination.
-
-As a special exception, the copyright holders of this library give you
-permission to link this library with independent modules to produce an
-executable, regardless of the license terms of these independent
-modules, and to copy and distribute the resulting executable under
-terms of your choice, provided that you also meet, for each linked
-independent module, the terms and conditions of the license of that
-module. An independent module is a module which is not derived from
-or based on this library. If you modify this library, you may extend
-this exception to your version of the library, but you are not
-obligated to do so. If you do not wish to do so, delete this
-exception statement from your version. */
-
-
-package com.sun.javadoc;
-
-public interface PackageDoc extends Doc
-{
-
-/**
- * This method returns a list of all the classes and interfaces in
- * this package. This list will included exceptions and errors.
- *
- * @return The list of classes and interfaces for this package.
- */
-public abstract ClassDoc[]
-allClasses();
-
-/*************************************************************************/
-
-/**
- * This method returns the list of ordinary classes in this package. This
- * list will not include any interface, exceptions or errors.
- *
- * @return The list of ordinary classes in this package.
- */
-public abstract ClassDoc[]
-ordinaryClasses();
-
-/*************************************************************************/
-
-/**
- * This method returns the list of exceptions in this package.
- *
- * @return The list of exceptions in this package.
- */
-public abstract ClassDoc[]
-exceptions();
-
-/*************************************************************************/
-
-/**
- * This method returns the list of errors in this package.
- *
- * @return The list of errors in this package.
- */
-public abstract ClassDoc[]
-errors();
-
-/*************************************************************************/
-
-/**
- * This method returns the list of interfaces in this package.
- *
- * @return The list of interfaces in this package.
- */
-public abstract ClassDoc[]
-interfaces();
-
-/*************************************************************************/
-
-/**
- * This method returns a ClassDoc instance for the specified
- * class.
- *
- * @param name The name of the class to return.
- *
- * @return The requested ClassDoc or null if
- * this class not part of this javadoc run.
- */
-public abstract ClassDoc
-findClass(String cls);
-
-} // interface PackageDoc
diff --git a/libjava/classpath/tools/com/sun/javadoc/ParamTag.java b/libjava/classpath/tools/com/sun/javadoc/ParamTag.java
deleted file mode 100644
index 9c060e9..0000000
--- a/libjava/classpath/tools/com/sun/javadoc/ParamTag.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/* ParamTag.java -- Documentation tag for method parameters
- Copyright (C) 1999 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-02110-1301 USA.
-
-Linking this library statically or dynamically with other modules is
-making a combined work based on this library. Thus, the terms and
-conditions of the GNU General Public License cover the whole
-combination.
-
-As a special exception, the copyright holders of this library give you
-permission to link this library with independent modules to produce an
-executable, regardless of the license terms of these independent
-modules, and to copy and distribute the resulting executable under
-terms of your choice, provided that you also meet, for each linked
-independent module, the terms and conditions of the license of that
-module. An independent module is a module which is not derived from
-or based on this library. If you modify this library, you may extend
-this exception to your version of the library, but you are not
-obligated to do so. If you do not wish to do so, delete this
-exception statement from your version. */
-
-
-package com.sun.javadoc;
-
-/**
- * This interface represents an "@param" tag.
- */
-public interface ParamTag extends Tag
-{
-
-/**
- * This method returns the comment text for the parameter.
- *
- * @return The comment text for the parameter.
- */
-public abstract String
-parameterComment();
-
-/*************************************************************************/
-
-/**
- * This method returns the name of the parameter.
- *
- * @return The name of the parameter.
- */
-public abstract String
-parameterName();
-
-} // interface ParamTag
diff --git a/libjava/classpath/tools/com/sun/javadoc/Parameter.java b/libjava/classpath/tools/com/sun/javadoc/Parameter.java
deleted file mode 100644
index 300a335..0000000
--- a/libjava/classpath/tools/com/sun/javadoc/Parameter.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/* Parameter.java -- Information about parameters to methods.
- Copyright (C) 1999 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-02110-1301 USA.
-
-Linking this library statically or dynamically with other modules is
-making a combined work based on this library. Thus, the terms and
-conditions of the GNU General Public License cover the whole
-combination.
-
-As a special exception, the copyright holders of this library give you
-permission to link this library with independent modules to produce an
-executable, regardless of the license terms of these independent
-modules, and to copy and distribute the resulting executable under
-terms of your choice, provided that you also meet, for each linked
-independent module, the terms and conditions of the license of that
-module. An independent module is a module which is not derived from
-or based on this library. If you modify this library, you may extend
-this exception to your version of the library, but you are not
-obligated to do so. If you do not wish to do so, delete this
-exception statement from your version. */
-
-
-package com.sun.javadoc;
-
-/**
- * This interface models a parameter to a method.
- */
-public interface Parameter extends java.io.Serializable
-{
-
-/**
- * This method returns the type of the parameter.
- *
- * @return The parameter type.
- */
-public abstract Type
-type();
-
-/*************************************************************************/
-
-/**
- * This method returns the name of the parameter.
- *
- * @return The parameter name.
- */
-public abstract String
-name();
-
-/*************************************************************************/
-
-/**
- * This method returns the name of the type of the parameter as a
- * String.
- *
- * @return The name of the type of this parameter.
- */
-public abstract String
-typeName();
-
-/*************************************************************************/
-
-/**
- * This method returns this parameter as a String that
- * contains both the type name and parameter name.
- *
- * @return This parameter as a String.
- */
-public abstract String
-toString();
-
-} // interaface Parameter
diff --git a/libjava/classpath/tools/com/sun/javadoc/ProgramElementDoc.java b/libjava/classpath/tools/com/sun/javadoc/ProgramElementDoc.java
deleted file mode 100644
index 061e327..0000000
--- a/libjava/classpath/tools/com/sun/javadoc/ProgramElementDoc.java
+++ /dev/null
@@ -1,169 +0,0 @@
-/* ProgramElementDoc.java -- Common ops for all program elements.
- Copyright (C) 1999 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-02110-1301 USA.
-
-Linking this library statically or dynamically with other modules is
-making a combined work based on this library. Thus, the terms and
-conditions of the GNU General Public License cover the whole
-combination.
-
-As a special exception, the copyright holders of this library give you
-permission to link this library with independent modules to produce an
-executable, regardless of the license terms of these independent
-modules, and to copy and distribute the resulting executable under
-terms of your choice, provided that you also meet, for each linked
-independent module, the terms and conditions of the license of that
-module. An independent module is a module which is not derived from
-or based on this library. If you modify this library, you may extend
-this exception to your version of the library, but you are not
-obligated to do so. If you do not wish to do so, delete this
-exception statement from your version. */
-
-
-package com.sun.javadoc;
-
-/**
- * This is the comment super-interface of all items that are "program
- * elements". This includes classes, interfaces, fields, constructors,
- * and methods.
- */
-public interface ProgramElementDoc extends Doc
-{
-
-/**
- * This method returns the class which contains this element. If this
- * is a class that is not an inner class, null will be
- * returned.
- *
- * @returned The class element that contains this item, or null
- * if this item is a class that is not an inner class.
- */
-public abstract ClassDoc
-containingClass();
-
-/*************************************************************************/
-
-/**
- * This method returns the package which contains this element. If this
- * element is in the default generic package, then the name of the
- * package element returned will be "".
- *
- * @return The package element that contains this item.
- */
-public abstract PackageDoc
-containingPackage();
-
-/*************************************************************************/
-
-/**
- * This method returns the fully qualified name of this element.
- *
- * @return The fully qualified name of this element.
- */
-public abstract String
-qualifiedName();
-
-/*************************************************************************/
-
-/**
- * This method returns the modifier specificier number, which is what?
- *
- * @return The modifier for this element.
- */
-public abstract int
-modifierSpecifier();
-
-/*************************************************************************/
-
-/**
- * This method returns a string with the element modifiers. For example,
- * the modifiers of a method declaration might be "protected abstract".
- *
- * @return The modifier string.
- */
-public abstract String
-modifiers();
-
-/*************************************************************************/
-
-/**
- * This method tests whether or not this element is public.
- *
- * @return true if this element is public, false
- * otherwise.
- */
-public abstract boolean
-isPublic();
-
-/*************************************************************************/
-
-/**
- * This method tests whether or not this element is protected.
- *
- * @return true if this element is protected, false
- * otherwise.
- */
-public abstract boolean
-isProtected();
-
-/*************************************************************************/
-
-/**
- * This method tests whether or not this element is private.
- *
- * @return true if this element is private, false
- * otherwise.
- */
-public abstract boolean
-isPrivate();
-
-/*************************************************************************/
-
-/**
- * This method tests whether or not this element is package private.
- *
- * @return true if this element is package private,
- * false otherwise.
- */
-public abstract boolean
-isPackagePrivate();
-
-/*************************************************************************/
-
-/**
- * This method tests whether or not this element is static.
- *
- * @return true if this element is static, false
- * otherwise.
- */
-public abstract boolean
-isStatic();
-
-/*************************************************************************/
-
-/**
- * This method tests whether or not this element is final.
- *
- * @return true if this element is final, false
- * otherwise.
- */
-public abstract boolean
-isFinal();
-
-} // interface ProgramElementDoc
diff --git a/libjava/classpath/tools/com/sun/javadoc/RootDoc.java b/libjava/classpath/tools/com/sun/javadoc/RootDoc.java
deleted file mode 100644
index 18be71d..0000000
--- a/libjava/classpath/tools/com/sun/javadoc/RootDoc.java
+++ /dev/null
@@ -1,111 +0,0 @@
-/* RootDoc.java -- Information about a javadoc run.
- Copyright (C) 1999 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-02110-1301 USA.
-
-Linking this library statically or dynamically with other modules is
-making a combined work based on this library. Thus, the terms and
-conditions of the GNU General Public License cover the whole
-combination.
-
-As a special exception, the copyright holders of this library give you
-permission to link this library with independent modules to produce an
-executable, regardless of the license terms of these independent
-modules, and to copy and distribute the resulting executable under
-terms of your choice, provided that you also meet, for each linked
-independent module, the terms and conditions of the license of that
-module. An independent module is a module which is not derived from
-or based on this library. If you modify this library, you may extend
-this exception to your version of the library, but you are not
-obligated to do so. If you do not wish to do so, delete this
-exception statement from your version. */
-
-package com.sun.javadoc;
-
-/**
- * This interface is the root of the javadoc application. All the properties and
- * arguments are attached to the class that will implements this interface. You
- * can retrieve all the options of the tool with this interface.
- */
-public interface RootDoc extends Doc, DocErrorReporter
-{
-
- /**
- * This method returns the command line element used to invoke this instance
- * of javadoc.
- *
- * @return The command line arguments for this run.
- */
- public abstract String[][] options();
-
- /** ********************************************************************** */
-
- /**
- * This method returns the list of packages that were specified on the command
- * line.
- *
- * @return The packages specified on the command line.
- */
- public abstract PackageDoc[] specifiedPackages();
-
- /** ********************************************************************** */
-
- /**
- * This method returns the list of classes that were specified on the command
- * line.
- *
- * @return The classes specified on the command line.
- */
- public abstract ClassDoc[] specifiedClasses();
-
- /** ********************************************************************** */
-
- /**
- * This method returns the list of classes and interfaces to be documented.
- *
- * @return The list of classes and interfaces to be documented.
- */
- public abstract ClassDoc[] classes();
-
- /** ********************************************************************** */
-
- /**
- * This method returns a ClassDoc instance for the name class
- * or interface.
- *
- * @param name
- * The class or interface to look up.
- * @return The requested ClassDoc, or null if the specified
- * class is not part of this javadoc run.
- */
- public abstract ClassDoc classNamed(String name);
-
- /** ********************************************************************** */
-
- /**
- * This method returns a PackageDoc instance for the named
- * package.
- *
- * @param name
- * The package to look up.
- * @return The requested PackageDoc, or null if the specified
- * package is not part of this javadoc run.
- */
- public abstract PackageDoc packageNamed(String name);
-
-} // interface RootDoc
diff --git a/libjava/classpath/tools/com/sun/javadoc/SeeTag.java b/libjava/classpath/tools/com/sun/javadoc/SeeTag.java
deleted file mode 100644
index 7e5b305..0000000
--- a/libjava/classpath/tools/com/sun/javadoc/SeeTag.java
+++ /dev/null
@@ -1,108 +0,0 @@
-/* SeeTag.java -- Information about "@see" tags.
- Copyright (C) 1999 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-02110-1301 USA.
-
-Linking this library statically or dynamically with other modules is
-making a combined work based on this library. Thus, the terms and
-conditions of the GNU General Public License cover the whole
-combination.
-
-As a special exception, the copyright holders of this library give you
-permission to link this library with independent modules to produce an
-executable, regardless of the license terms of these independent
-modules, and to copy and distribute the resulting executable under
-terms of your choice, provided that you also meet, for each linked
-independent module, the terms and conditions of the license of that
-module. An independent module is a module which is not derived from
-or based on this library. If you modify this library, you may extend
-this exception to your version of the library, but you are not
-obligated to do so. If you do not wish to do so, delete this
-exception statement from your version. */
-
-
-package com.sun.javadoc;
-
-/**
- * This interface models an "@see" tag.
- */
-public interface SeeTag extends Tag
-{
-
-/**
- * This method returns the label for this tag. What is this????
- *
- * @return The label for this tag.
- */
-public abstract String
-label();
-
-/*************************************************************************/
-
-/**
- * This method returns the package of the referenced item.
- *
- * @return The package of the referenced item, or null if no
- * package is found.
- */
-public abstract PackageDoc
-referencedPackage();
-
-/*************************************************************************/
-
-/**
- * This method returns the name of the class referenced in the tag.
- *
- * @return The name of the class referenced in the tag.
- */
-public abstract String
-referencedClassName();
-
-/*************************************************************************/
-
-/**
- * This method returns a ClassDoc instance for the class
- * referenced in the tag.
- *
- * @return A ClassDoc for the class referenced in the tag.
- */
-public abstract ClassDoc
-referencedClass();
-
-/*************************************************************************/
-
-/**
- * This method returns the name of the member referenced in the tag.
- *
- * @return The name of the member referenced in the tag.
- */
-public abstract String
-referencedMemberName();
-
-/*************************************************************************/
-
-/**
- * This method returns a MemberDoc instance for the member
- * referenced in the tag.
- *
- * @return A MemberDoc for the member referenced in the tag.
- */
-public abstract MemberDoc
-referencedMember();
-
-} // interface SeeTag
diff --git a/libjava/classpath/tools/com/sun/javadoc/SerialFieldTag.java b/libjava/classpath/tools/com/sun/javadoc/SerialFieldTag.java
deleted file mode 100644
index ef69283..0000000
--- a/libjava/classpath/tools/com/sun/javadoc/SerialFieldTag.java
+++ /dev/null
@@ -1,101 +0,0 @@
-/* SerialFieldTag.java -- Information about the "@serialField" tag.
- Copyright (C) 1999 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-02110-1301 USA.
-
-Linking this library statically or dynamically with other modules is
-making a combined work based on this library. Thus, the terms and
-conditions of the GNU General Public License cover the whole
-combination.
-
-As a special exception, the copyright holders of this library give you
-permission to link this library with independent modules to produce an
-executable, regardless of the license terms of these independent
-modules, and to copy and distribute the resulting executable under
-terms of your choice, provided that you also meet, for each linked
-independent module, the terms and conditions of the license of that
-module. An independent module is a module which is not derived from
-or based on this library. If you modify this library, you may extend
-this exception to your version of the library, but you are not
-obligated to do so. If you do not wish to do so, delete this
-exception statement from your version. */
-
-
-package com.sun.javadoc;
-
-/**
- * This interface models the "@serialField" tag.
- */
-public interface SerialFieldTag extends Tag, Comparable
-{
-
-/**
- * This method returns the name of the field.
- *
- * @return The name of the field.
- */
-public abstract String
-fieldName();
-
-/*************************************************************************/
-
-/**
- * This method returns the type name of the field.
- *
- * @return The type name of the field.
- */
-public abstract String
-fieldType();
-
-/*************************************************************************/
-
-/**
- * This method returns a ClassDoc instance for the type of
- * the field. What about primitive types???
- *
- * @return A ClassDoc for the field type.
- */
-public abstract ClassDoc
-fieldTypeDoc();
-
-/*************************************************************************/
-
-/**
- * This method returns the description of the field.
- *
- * @return The description of the field.
- */
-public abstract String
-description();
-
-/*************************************************************************/
-
-/**
- * This method compares this object with the specified object in order to
- * determine proper ordering.
- *
- * @param obj The object to compare against.
- *
- * @return A negative number if this object is less than the specified
- * object, zero if the objects are equal, or a positive number if this object
- * is greater than the specified object.
- */
-public abstract int
-compareTo(Object obj);
-
-} // interface SerialFieldTag
diff --git a/libjava/classpath/tools/com/sun/javadoc/SourcePosition.java b/libjava/classpath/tools/com/sun/javadoc/SourcePosition.java
deleted file mode 100644
index fff2559..0000000
--- a/libjava/classpath/tools/com/sun/javadoc/SourcePosition.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/* SourcePosition.java -- Model of a location in a source file.
- Copyright (C) 1999 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-02110-1301 USA.
-
-Linking this library statically or dynamically with other modules is
-making a combined work based on this library. Thus, the terms and
-conditions of the GNU General Public License cover the whole
-combination.
-
-As a special exception, the copyright holders of this library give you
-permission to link this library with independent modules to produce an
-executable, regardless of the license terms of these independent
-modules, and to copy and distribute the resulting executable under
-terms of your choice, provided that you also meet, for each linked
-independent module, the terms and conditions of the license of that
-module. An independent module is a module which is not derived from
-or based on this library. If you modify this library, you may extend
-this exception to your version of the library, but you are not
-obligated to do so. If you do not wish to do so, delete this
-exception statement from your version. */
-
-
-package com.sun.javadoc;
-
-import java.io.File;
-
-/**
- * Represents a location in a source file. This is used by {@link
- * Doc} to specify at which location an item is defined.
- */
-public interface SourcePosition
-{
- /**
- * Return a File object pointing to the source file.
- */
- public File file();
-
- /**
- * Return the 1-based line number within the source file.
- */
- public int line();
-
- /**
- * Return the 1-based column number within the source file.
- */
- public int column();
-
- /**
- * Return a string in the format "file.toString():line"
- */
- public String toString();
-}
diff --git a/libjava/classpath/tools/com/sun/javadoc/Tag.java b/libjava/classpath/tools/com/sun/javadoc/Tag.java
deleted file mode 100644
index 88745cb..0000000
--- a/libjava/classpath/tools/com/sun/javadoc/Tag.java
+++ /dev/null
@@ -1,106 +0,0 @@
-/* Tag.java -- Common operations on Javadoc tags.
- Copyright (C) 1999 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-02110-1301 USA.
-
-Linking this library statically or dynamically with other modules is
-making a combined work based on this library. Thus, the terms and
-conditions of the GNU General Public License cover the whole
-combination.
-
-As a special exception, the copyright holders of this library give you
-permission to link this library with independent modules to produce an
-executable, regardless of the license terms of these independent
-modules, and to copy and distribute the resulting executable under
-terms of your choice, provided that you also meet, for each linked
-independent module, the terms and conditions of the license of that
-module. An independent module is a module which is not derived from
-or based on this library. If you modify this library, you may extend
-this exception to your version of the library, but you are not
-obligated to do so. If you do not wish to do so, delete this
-exception statement from your version. */
-
-
-package com.sun.javadoc;
-
-/**
- * This is the super-interface for all Javadoc tags.
- */
-public interface Tag extends java.io.Serializable
-{
-/**
- * This method returns the name of the tag.
- *
- * @return The name of the tag.
- */
-public abstract String
-name();
-
-/*************************************************************************/
-
-/**
- * This method returns the kind of tag. ????
- *
- * @return The kind of the tag.
- */
-public abstract String
-kind();
-
-/*************************************************************************/
-
-/**
- * This method returns the text for this tag.
- *
- * @return The text for this tag.
- */
-public abstract String
-text();
-
-/*************************************************************************/
-
-/**
- * This method returns the tag as a String. What kind of
- * string?
- *
- * @return This tag as a String.
- */
-public abstract String
-toString();
-
-/*************************************************************************/
-
-/**
- * This method returns the inline tags for this comment.
- *
- * @return The inline tags for this comment.
- */
-public abstract Tag[]
-inlineTags();
-
-/*************************************************************************/
-
-/**
- * This method returns the first sentence of the doc comment as an array
- * of Tag's.
- *
- * @return The first sentence of the comment as tags.
- */
-public abstract Tag[]
-firstSentenceTags();
-
-} // interface Tag
diff --git a/libjava/classpath/tools/com/sun/javadoc/ThrowsTag.java b/libjava/classpath/tools/com/sun/javadoc/ThrowsTag.java
deleted file mode 100644
index 0d5a98e..0000000
--- a/libjava/classpath/tools/com/sun/javadoc/ThrowsTag.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/* ThrowsTag.java -- Information about "@throws" and "@exception" tags.
- Copyright (C) 1999 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-02110-1301 USA.
-
-Linking this library statically or dynamically with other modules is
-making a combined work based on this library. Thus, the terms and
-conditions of the GNU General Public License cover the whole
-combination.
-
-As a special exception, the copyright holders of this library give you
-permission to link this library with independent modules to produce an
-executable, regardless of the license terms of these independent
-modules, and to copy and distribute the resulting executable under
-terms of your choice, provided that you also meet, for each linked
-independent module, the terms and conditions of the license of that
-module. An independent module is a module which is not derived from
-or based on this library. If you modify this library, you may extend
-this exception to your version of the library, but you are not
-obligated to do so. If you do not wish to do so, delete this
-exception statement from your version. */
-
-
-package com.sun.javadoc;
-
-/**
- * This interface models an "@exception" or "@throws" tag.
- */
-public interface ThrowsTag extends Tag
-{
-
-/**
- * This method returns the name of the exception.
- *
- * @return The name of the exception.
- */
-public abstract String
-exceptionName();
-
-/*************************************************************************/
-
-/**
- * This method returns the comment text of the exception.
- *
- * @return The comment text of the exception.
- */
-public abstract String
-exceptionComment();
-
-/*************************************************************************/
-
-/**
- * This method returns the exception class as a ClassDoc.
- *
- * @return The exception class as a ClassDoc.
- */
-public abstract ClassDoc
-exception();
-
-} // interface ThrowsTag
diff --git a/libjava/classpath/tools/com/sun/javadoc/Type.java b/libjava/classpath/tools/com/sun/javadoc/Type.java
deleted file mode 100644
index 0aabe0e..0000000
--- a/libjava/classpath/tools/com/sun/javadoc/Type.java
+++ /dev/null
@@ -1,119 +0,0 @@
-/* Type.java -- Documentation information about Java types.
- Copyright (C) 1999 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-02110-1301 USA.
-
-Linking this library statically or dynamically with other modules is
-making a combined work based on this library. Thus, the terms and
-conditions of the GNU General Public License cover the whole
-combination.
-
-As a special exception, the copyright holders of this library give you
-permission to link this library with independent modules to produce an
-executable, regardless of the license terms of these independent
-modules, and to copy and distribute the resulting executable under
-terms of your choice, provided that you also meet, for each linked
-independent module, the terms and conditions of the license of that
-module. An independent module is a module which is not derived from
-or based on this library. If you modify this library, you may extend
-this exception to your version of the library, but you are not
-obligated to do so. If you do not wish to do so, delete this
-exception statement from your version. */
-
-
-package com.sun.javadoc;
-
-/**
- * This class is used for holding information about Java types needed for
- * documentation.
- */
-public interface Type extends java.io.Serializable
-{
-
-/**
- * This method returns the unqualified name of the type, excluding any array
- * dimension information or brackets.
- *
- * @return The unqualified type name, sans array information or brackets.
- */
-public abstract String
-typeName();
-
-/*************************************************************************/
-
-/**
- * This method returns the fully qualified name of the type, excluding any
- * array dimension information or brackets.
- *
- * @return The fully qualified type name, sans array information or brackets.
- */
-public abstract String
-qualifiedTypeName();
-
-/*************************************************************************/
-
-/**
- * This method returns the array dimensions as brackets.
- *
- * @param The array dimensions.
- */
-public abstract String
-dimension();
-
-/*************************************************************************/
-
-/**
- * This method returns the unqualfied name of the type, and includes array
- * dimension information.
- *
- * @return The unqualified name of the type, including array dimension info.
- */
-public abstract String
-toString();
-
-/*************************************************************************/
-
-/**
- * This method returns this type as a ClassDoc. This is not
- * a valid operation for primitive types.
- *
- * @return A ClassDoc for this type, or null if
- * this is a primitive type.
- */
-public abstract ClassDoc
-asClassDoc();
-
-/**
- * This method returns whether this type represents one of the
- * built-in Java primitive types.
- */
-public abstract boolean
-isPrimitive();
-
-/**
- * Returns this type as a TypeVariable, if it is an
- * instance of the TypeVariable class. Otherwise,
- * it returns null.
- *
- * @return this cast to a TypeVariable instance, or null
- * if this is not a type variable.
- */
-TypeVariable
-asTypeVariable();
-
-} // interface Type
diff --git a/libjava/classpath/tools/com/sun/javadoc/TypeVariable.java b/libjava/classpath/tools/com/sun/javadoc/TypeVariable.java
deleted file mode 100644
index 94da505..0000000
--- a/libjava/classpath/tools/com/sun/javadoc/TypeVariable.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/* TypeVariable.java -- Document a Java type variable.
- 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 com.sun.javadoc;
-
-/**
- * This class represents a type variable, which is used to parameterize
- * the types used in a method or class. For example,
- * List<E> has the type variable, E. Type
- * variables may have explicit bounds, such as <T extends
- * Book>, which specifies that the type is a sub-class of
- * Book.
- *
- * @since 1.5
- * @author Andrew John Hughes (gnu_andrew@member.fsf.org)
- */
-public interface TypeVariable
- extends Type
-{
-
- /**
- * Returns the bounds of this type variable. These are the types
- * represented in the extends clause.
- *
- * @return an array of types which specify the bounds of this variable.
- * The array is empty if there are no explicit bounds.
- */
- Type[] bounds();
-
- /**
- * Returns the class, interface, method or constructor in which this
- * type variable was declared.
- *
- * @return the owning program element for this type variable.
- */
- ProgramElementDoc owner();
-
-}
diff --git a/libjava/classpath/tools/com/sun/tools/doclets/Taglet.java b/libjava/classpath/tools/com/sun/tools/doclets/Taglet.java
deleted file mode 100644
index f4f348d..0000000
--- a/libjava/classpath/tools/com/sun/tools/doclets/Taglet.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/* com.sun.tools.doclets.Taglet
- Copyright (C) 2001 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-02110-1301 USA.
-
-Linking this library statically or dynamically with other modules is
-making a combined work based on this library. Thus, the terms and
-conditions of the GNU General Public License cover the whole
-combination.
-
-As a special exception, the copyright holders of this library give you
-permission to link this library with independent modules to produce an
-executable, regardless of the license terms of these independent
-modules, and to copy and distribute the resulting executable under
-terms of your choice, provided that you also meet, for each linked
-independent module, the terms and conditions of the license of that
-module. An independent module is a module which is not derived from
-or based on this library. If you modify this library, you may extend
-this exception to your version of the library, but you are not
-obligated to do so. If you do not wish to do so, delete this
-exception statement from your version. */
-
-package com.sun.tools.doclets;
-
-import com.sun.javadoc.Tag;
-
-public interface Taglet {
-
- public String getName();
-
- public boolean inConstructor();
-
- public boolean inField();
-
- public boolean inMethod();
-
- public boolean inOverview();
-
- public boolean inPackage();
-
- public boolean inType();
-
- public boolean isInlineTag();
-
- public String toString(Tag tag);
-
- public String toString(Tag[] tagArray);
-}
diff --git a/libjava/classpath/tools/com/sun/tools/javac/Main.java b/libjava/classpath/tools/com/sun/tools/javac/Main.java
deleted file mode 100644
index 5c5bc2f..0000000
--- a/libjava/classpath/tools/com/sun/tools/javac/Main.java
+++ /dev/null
@@ -1,158 +0,0 @@
-/* Main.java -- implement com.sun.tools.javac.Main
- Copyright (C) 2007 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-02110-1301 USA.
-
-Linking this library statically or dynamically with other modules is
-making a combined work based on this library. Thus, the terms and
-conditions of the GNU General Public License cover the whole
-combination.
-
-As a special exception, the copyright holders of this library give you
-permission to link this library with independent modules to produce an
-executable, regardless of the license terms of these independent
-modules, and to copy and distribute the resulting executable under
-terms of your choice, provided that you also meet, for each linked
-independent module, the terms and conditions of the license of that
-module. An independent module is a module which is not derived from
-or based on this library. If you modify this library, you may extend
-this exception to your version of the library, but you are not
-obligated to do so. If you do not wish to do so, delete this
-exception statement from your version. */
-
-
-package com.sun.tools.javac;
-
-import gnu.classpath.Configuration;
-import java.io.File;
-import java.io.PrintWriter;
-import java.lang.reflect.Constructor;
-import java.lang.reflect.Method;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.net.URLClassLoader;
-import java.text.MessageFormat;
-
-public class Main
-{
- static Constructor ecjConstructor = null;
- static Method ecjMethod = null;
-
- static
- {
- String classname = "org.eclipse.jdt.internal.compiler.batch.Main";
- Class klass = null;
- try
- {
- klass = Class.forName(classname);
- }
- catch (ClassNotFoundException e)
- {
- File jar = new File(Configuration.ECJ_JAR);
- if (!jar.exists() || !jar.canRead())
- {
- String message
- = MessageFormat.format(Messages.getString("Main.FailedToRead"),
- new Object[] { Configuration.ECJ_JAR });
- System.err.println(message);
- }
-
- ClassLoader loader = null;
- try
- {
- loader = new URLClassLoader(new URL[] {jar.toURL()});
- }
- catch (MalformedURLException f)
- {
- String message
- = MessageFormat.format(Messages.getString("Main.MalformedURL"),
- new Object[] { Configuration.ECJ_JAR });
- System.err.println(message);
- f.printStackTrace();
- }
-
- try
- {
- klass = loader.loadClass(classname);
- }
- catch (ClassNotFoundException g)
- {
- String message
- = MessageFormat.format(Messages.getString("Main.FailedToLoad"),
- new Object[] { classname,
- Configuration.ECJ_JAR });
- System.err.println(message);
- g.printStackTrace();
- }
- }
-
- try
- {
- ecjConstructor = klass.getConstructor(new Class[] {
- PrintWriter.class,
- PrintWriter.class,
- Boolean.TYPE});
- }
- catch (NoSuchMethodException h)
- {
- System.err.println(Messages.getString("Main.FailedConstructor"));
- h.printStackTrace();
- }
-
- try
- {
- ecjMethod = klass.getMethod("compile", new Class[] {String[].class});
- }
- catch (NoSuchMethodException i)
- {
- System.err.println(Messages.getString("Main.FailedCompile"));
- i.printStackTrace();
- }
- }
-
- public static int compile(String[] args, PrintWriter p) throws Exception
- {
- /*
- * This code depends on the patch in Comment #10 in this bug
- * report:
- *
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=88364
- */
- Object ecjInstance = ecjConstructor.newInstance(new Object[]
- {
- p,
- new PrintWriter(System.err),
- Boolean.FALSE
- });
- String[] runArgs = new String[args.length + 1];
- runArgs[0] = "-1.5";
- System.arraycopy(args, 0, runArgs, 1, args.length);
- return ((Boolean) ecjMethod.invoke(ecjInstance, new Object[]
- { runArgs })).booleanValue() ? 0 : -1;
- }
-
- public static int compile(String[] args) throws Exception
- {
- return compile(args, new PrintWriter(System.out));
- }
-
- public static void main(String[] args) throws Exception
- {
- Runtime.getRuntime().exit(Main.compile(args));
- }
-}
diff --git a/libjava/classpath/tools/com/sun/tools/javac/Messages.java b/libjava/classpath/tools/com/sun/tools/javac/Messages.java
deleted file mode 100644
index 17f22ac..0000000
--- a/libjava/classpath/tools/com/sun/tools/javac/Messages.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/* Messages.java -- localization support for com.sun.tools.javac
- Copyright (C) 2007 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-02110-1301 USA.
-
-Linking this library statically or dynamically with other modules is
-making a combined work based on this library. Thus, the terms and
-conditions of the GNU General Public License cover the whole
-combination.
-
-As a special exception, the copyright holders of this library give you
-permission to link this library with independent modules to produce an
-executable, regardless of the license terms of these independent
-modules, and to copy and distribute the resulting executable under
-terms of your choice, provided that you also meet, for each linked
-independent module, the terms and conditions of the license of that
-module. An independent module is a module which is not derived from
-or based on this library. If you modify this library, you may extend
-this exception to your version of the library, but you are not
-obligated to do so. If you do not wish to do so, delete this
-exception statement from your version. */
-
-
-package com.sun.tools.javac;
-
-import java.util.MissingResourceException;
-import java.util.ResourceBundle;
-
-public class Messages
-{
- private static final String BUNDLE_NAME
- = "com.sun.tools.javac.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/com/sun/tools/javadoc/Main.java b/libjava/classpath/tools/com/sun/tools/javadoc/Main.java
deleted file mode 100644
index 0082d41..0000000
--- a/libjava/classpath/tools/com/sun/tools/javadoc/Main.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/* com.sun.tools.javadoc.Main - Main wrapper for GJDoc
- Copyright (C) 2007 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 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 com.sun.tools.javadoc;
-
-public class Main
-{
- public static void main(String[] args)
- {
- gnu.classpath.tools.gjdoc.Main.main(args);
- }
-}
diff --git a/libjava/classpath/tools/com/sun/tools/javah/Main.java b/libjava/classpath/tools/com/sun/tools/javah/Main.java
deleted file mode 100644
index 7faab59..0000000
--- a/libjava/classpath/tools/com/sun/tools/javah/Main.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/* Main.java -- implement com.sun.tools.javah.Main
- Copyright (C) 2007 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-02110-1301 USA.
-
-Linking this library statically or dynamically with other modules is
-making a combined work based on this library. Thus, the terms and
-conditions of the GNU General Public License cover the whole
-combination.
-
-As a special exception, the copyright holders of this library give you
-permission to link this library with independent modules to produce an
-executable, regardless of the license terms of these independent
-modules, and to copy and distribute the resulting executable under
-terms of your choice, provided that you also meet, for each linked
-independent module, the terms and conditions of the license of that
-module. An independent module is a module which is not derived from
-or based on this library. If you modify this library, you may extend
-this exception to your version of the library, but you are not
-obligated to do so. If you do not wish to do so, delete this
-exception statement from your version. */
-
-
-package com.sun.tools.javah;
-
-import java.io.IOException;
-
-public class Main
-{
-
- public static void main(String[] args)
- {
- try
- {
- gnu.classpath.tools.javah.Main.main(args);
- }
- catch (IOException e)
- {
- throw new IllegalArgumentException("An I/O error occurred " +
- "in executing javah", e);
- }
- }
-}
diff --git a/libjava/classpath/tools/external/asm/org/objectweb/asm/AnnotationVisitor.java b/libjava/classpath/tools/external/asm/org/objectweb/asm/AnnotationVisitor.java
deleted file mode 100644
index 835b3e0..0000000
--- a/libjava/classpath/tools/external/asm/org/objectweb/asm/AnnotationVisitor.java
+++ /dev/null
@@ -1,88 +0,0 @@
-/***
- * 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
deleted file mode 100644
index bf06bc9..0000000
--- a/libjava/classpath/tools/external/asm/org/objectweb/asm/AnnotationWriter.java
+++ /dev/null
@@ -1,311 +0,0 @@
-/***
- * 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
deleted file mode 100644
index 897a33c..0000000
--- a/libjava/classpath/tools/external/asm/org/objectweb/asm/Attribute.java
+++ /dev/null
@@ -1,254 +0,0 @@
-/***
- * 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
deleted file mode 100644
index a1bc325..0000000
--- a/libjava/classpath/tools/external/asm/org/objectweb/asm/ByteVector.java
+++ /dev/null
@@ -1,293 +0,0 @@
-/***
- * 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
deleted file mode 100644
index 24e34bb..0000000
--- a/libjava/classpath/tools/external/asm/org/objectweb/asm/ClassAdapter.java
+++ /dev/null
@@ -1,121 +0,0 @@
-/***
- * 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
deleted file mode 100644
index 9d94a42..0000000
--- a/libjava/classpath/tools/external/asm/org/objectweb/asm/ClassReader.java
+++ /dev/null
@@ -1,1606 +0,0 @@
-/***
- * 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
deleted file mode 100644
index edeb587..0000000
--- a/libjava/classpath/tools/external/asm/org/objectweb/asm/ClassVisitor.java
+++ /dev/null
@@ -1,195 +0,0 @@
-/***
- * 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
deleted file mode 100644
index 81eeeb7..0000000
--- a/libjava/classpath/tools/external/asm/org/objectweb/asm/ClassWriter.java
+++ /dev/null
@@ -1,1162 +0,0 @@
-/***
- * 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
deleted file mode 100644
index 5bada4e..0000000
--- a/libjava/classpath/tools/external/asm/org/objectweb/asm/Edge.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/***
- * 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
deleted file mode 100644
index a05cb5a..0000000
--- a/libjava/classpath/tools/external/asm/org/objectweb/asm/FieldVisitor.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/***
- * 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
deleted file mode 100644
index 0adbea9..0000000
--- a/libjava/classpath/tools/external/asm/org/objectweb/asm/FieldWriter.java
+++ /dev/null
@@ -1,276 +0,0 @@
-/***
- * 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
deleted file mode 100644
index a1211ae..0000000
--- a/libjava/classpath/tools/external/asm/org/objectweb/asm/Handler.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/***
- * 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
deleted file mode 100644
index fc67b01..0000000
--- a/libjava/classpath/tools/external/asm/org/objectweb/asm/Item.java
+++ /dev/null
@@ -1,252 +0,0 @@
-/***
- * 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
deleted file mode 100644
index 3998e5a..0000000
--- a/libjava/classpath/tools/external/asm/org/objectweb/asm/Label.java
+++ /dev/null
@@ -1,299 +0,0 @@
-/***
- * 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
deleted file mode 100644
index a038ac7..0000000
--- a/libjava/classpath/tools/external/asm/org/objectweb/asm/MethodAdapter.java
+++ /dev/null
@@ -1,185 +0,0 @@
-/***
- * 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
deleted file mode 100644
index d56b3bd..0000000
--- a/libjava/classpath/tools/external/asm/org/objectweb/asm/MethodVisitor.java
+++ /dev/null
@@ -1,334 +0,0 @@
-/***
- * 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
deleted file mode 100644
index 5b841d5..0000000
--- a/libjava/classpath/tools/external/asm/org/objectweb/asm/MethodWriter.java
+++ /dev/null
@@ -1,2022 +0,0 @@
-/***
- * 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
deleted file mode 100644
index 2728d96..0000000
--- a/libjava/classpath/tools/external/asm/org/objectweb/asm/Opcodes.java
+++ /dev/null
@@ -1,295 +0,0 @@
-/***
- * 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
deleted file mode 100644
index ae314e8..0000000
--- a/libjava/classpath/tools/external/asm/org/objectweb/asm/Type.java
+++ /dev/null
@@ -1,760 +0,0 @@
-/***
- * 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
deleted file mode 100644
index f359474..0000000
--- a/libjava/classpath/tools/external/asm/org/objectweb/asm/attrs/StackMapAttribute.java
+++ /dev/null
@@ -1,378 +0,0 @@
-/**
- * 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.
- *
- * 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.
- *
- *
- *
- * @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
deleted file mode 100644
index d91d8e7..0000000
--- a/libjava/classpath/tools/external/asm/org/objectweb/asm/attrs/StackMapFrame.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/**
- * 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
deleted file mode 100644
index 032adf6..0000000
--- a/libjava/classpath/tools/external/asm/org/objectweb/asm/attrs/StackMapTableAttribute.java
+++ /dev/null
@@ -1,927 +0,0 @@
-/**
- * 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.
- *
- *
- *
- * 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
- *
- *
- *
- * 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:
- *
- *
- *
- * 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:
- *
- *
- *
- * 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 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:
- *
- *
- *
- * 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 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:
- *
- *
- *
- * 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.
- *
- *
- *
- * 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.
- *
- *
- *
- * 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.
- *
- *
- *
- * 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.
- *
- *
- *
- * @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
deleted file mode 100644
index 30cadf1..0000000
--- a/libjava/classpath/tools/external/asm/org/objectweb/asm/attrs/StackMapType.java
+++ /dev/null
@@ -1,114 +0,0 @@
-/**
- * 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/commons/AdviceAdapter.java b/libjava/classpath/tools/external/asm/org/objectweb/asm/commons/AdviceAdapter.java
deleted file mode 100644
index 13fbaa6..0000000
--- a/libjava/classpath/tools/external/asm/org/objectweb/asm/commons/AdviceAdapter.java
+++ /dev/null
@@ -1,642 +0,0 @@
-/***
- * 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:
- *
- *
- *
as long as the INVOKESPECIAL for the object initialization has not been
- * reached, every bytecode instruction is dispatched in the ctor code visitor
- *
- *
when this one is reached, it is only added in the ctor code visitor and
- * a JP invoke is added
- *
after that, only the other code visitor receives the instructions
- *
- *
- *
- * @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:
- *
- *
- *
- * 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
deleted file mode 100644
index d979659..0000000
--- a/libjava/classpath/tools/external/asm/org/objectweb/asm/commons/EmptyVisitor.java
+++ /dev/null
@@ -1,211 +0,0 @@
-/***
- * 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
deleted file mode 100644
index aacb27c..0000000
--- a/libjava/classpath/tools/external/asm/org/objectweb/asm/commons/GeneratorAdapter.java
+++ /dev/null
@@ -1,1454 +0,0 @@
-/***
- * 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!");
- * }
- * }
- *
- *
- * @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
deleted file mode 100644
index bfc8732..0000000
--- a/libjava/classpath/tools/external/asm/org/objectweb/asm/commons/LocalVariablesSorter.java
+++ /dev/null
@@ -1,136 +0,0 @@
-/***
- * 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
deleted file mode 100644
index c5ce314..0000000
--- a/libjava/classpath/tools/external/asm/org/objectweb/asm/commons/Method.java
+++ /dev/null
@@ -1,220 +0,0 @@
-/***
- * 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();
- }
-}
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
deleted file mode 100644
index 3932a01..0000000
--- a/libjava/classpath/tools/external/asm/org/objectweb/asm/commons/SerialVersionUIDAdder.java
+++ /dev/null
@@ -1,490 +0,0 @@
-/***
- * 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 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
deleted file mode 100644
index 2af409e..0000000
--- a/libjava/classpath/tools/external/asm/org/objectweb/asm/commons/StaticInitMerger.java
+++ /dev/null
@@ -1,99 +0,0 @@
-/***
- * 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
deleted file mode 100644
index c90a9ca..0000000
--- a/libjava/classpath/tools/external/asm/org/objectweb/asm/commons/TableSwitchGenerator.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/***
- * 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/optimizer/AnnotationConstantsCollector.java b/libjava/classpath/tools/external/asm/org/objectweb/asm/optimizer/AnnotationConstantsCollector.java
deleted file mode 100644
index 5bceca1..0000000
--- a/libjava/classpath/tools/external/asm/org/objectweb/asm/optimizer/AnnotationConstantsCollector.java
+++ /dev/null
@@ -1,150 +0,0 @@
-/***
- * 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
deleted file mode 100644
index 4a6efe5..0000000
--- a/libjava/classpath/tools/external/asm/org/objectweb/asm/optimizer/ClassConstantsCollector.java
+++ /dev/null
@@ -1,212 +0,0 @@
-/***
- * 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
deleted file mode 100644
index b9a1a42..0000000
--- a/libjava/classpath/tools/external/asm/org/objectweb/asm/optimizer/ClassOptimizer.java
+++ /dev/null
@@ -1,182 +0,0 @@
-/***
- * 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
deleted file mode 100644
index c07599d..0000000
--- a/libjava/classpath/tools/external/asm/org/objectweb/asm/optimizer/Constant.java
+++ /dev/null
@@ -1,265 +0,0 @@
-/***
- * 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
deleted file mode 100644
index dff17de..0000000
--- a/libjava/classpath/tools/external/asm/org/objectweb/asm/optimizer/ConstantPool.java
+++ /dev/null
@@ -1,198 +0,0 @@
-/***
- * 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);
- }
-}
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
deleted file mode 100644
index ac5d0d3..0000000
--- a/libjava/classpath/tools/external/asm/org/objectweb/asm/optimizer/FieldConstantsCollector.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/***
- * 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
deleted file mode 100644
index 994b458..0000000
--- a/libjava/classpath/tools/external/asm/org/objectweb/asm/optimizer/JarOptimizer.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/***
- * 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
deleted file mode 100644
index 33d82e9..0000000
--- a/libjava/classpath/tools/external/asm/org/objectweb/asm/optimizer/MethodConstantsCollector.java
+++ /dev/null
@@ -1,168 +0,0 @@
-/***
- * 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
deleted file mode 100644
index ea29274..0000000
--- a/libjava/classpath/tools/external/asm/org/objectweb/asm/optimizer/MethodOptimizer.java
+++ /dev/null
@@ -1,108 +0,0 @@
-/***
- * 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
deleted file mode 100644
index 77a856b..0000000
--- a/libjava/classpath/tools/external/asm/org/objectweb/asm/optimizer/NameMapping.java
+++ /dev/null
@@ -1,101 +0,0 @@
-/***
- * 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
deleted file mode 100644
index 86da307..0000000
--- a/libjava/classpath/tools/external/asm/org/objectweb/asm/optimizer/Shrinker.java
+++ /dev/null
@@ -1,168 +0,0 @@
-/***
- * 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
deleted file mode 100644
index 868780b..0000000
--- a/libjava/classpath/tools/external/asm/org/objectweb/asm/optimizer/shrink.properties
+++ /dev/null
@@ -1,225 +0,0 @@
-# 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/signature/SignatureReader.java b/libjava/classpath/tools/external/asm/org/objectweb/asm/signature/SignatureReader.java
deleted file mode 100644
index a2f31f3..0000000
--- a/libjava/classpath/tools/external/asm/org/objectweb/asm/signature/SignatureReader.java
+++ /dev/null
@@ -1,233 +0,0 @@
-/***
- * 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
deleted file mode 100644
index 46df8c9..0000000
--- a/libjava/classpath/tools/external/asm/org/objectweb/asm/signature/SignatureVisitor.java
+++ /dev/null
@@ -1,185 +0,0 @@
-/***
- * 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):
- *
- * @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
deleted file mode 100644
index 833d688..0000000
--- a/libjava/classpath/tools/external/asm/org/objectweb/asm/signature/SignatureWriter.java
+++ /dev/null
@@ -1,207 +0,0 @@
-/***
- * 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;
- }
-}
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
deleted file mode 100644
index e0009da..0000000
--- a/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/AbstractInsnNode.java
+++ /dev/null
@@ -1,143 +0,0 @@
-/***
- * 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
deleted file mode 100644
index c9c1cb9..0000000
--- a/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/AnnotationNode.java
+++ /dev/null
@@ -1,187 +0,0 @@
-/***
- * 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
deleted file mode 100644
index 85134e3..0000000
--- a/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/ClassNode.java
+++ /dev/null
@@ -1,283 +0,0 @@
-/***
- * 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
deleted file mode 100644
index 2ae5388..0000000
--- a/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/FieldInsnNode.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/***
- * 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
deleted file mode 100644
index 8a97b1c..0000000
--- a/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/FieldNode.java
+++ /dev/null
@@ -1,123 +0,0 @@
-/***
- * 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
deleted file mode 100644
index b5399b0..0000000
--- a/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/IincInsnNode.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/***
- * 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;
- }
-}
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
deleted file mode 100644
index 6af060e..0000000
--- a/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/InnerClassNode.java
+++ /dev/null
@@ -1,101 +0,0 @@
-/***
- * 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
deleted file mode 100644
index 7182726..0000000
--- a/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/InsnNode.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/***
- * 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
deleted file mode 100644
index b9b02e3..0000000
--- a/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/IntInsnNode.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/***
- * 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
deleted file mode 100644
index 7dccf32..0000000
--- a/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/JumpInsnNode.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/***
- * 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
deleted file mode 100644
index 0f8c933..0000000
--- a/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/LabelNode.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/***
- * 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;
- }
-}
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
deleted file mode 100644
index 234b41f..0000000
--- a/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/LdcInsnNode.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/***
- * 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;
- }
-}
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
deleted file mode 100644
index 2a34988..0000000
--- a/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/LineNumberNode.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/***
- * 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
deleted file mode 100644
index 511dcf9..0000000
--- a/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/LocalVariableNode.java
+++ /dev/null
@@ -1,111 +0,0 @@
-/***
- * 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
deleted file mode 100644
index 31eb234..0000000
--- a/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/LookupSwitchInsnNode.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/***
- * 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
deleted file mode 100644
index 11dfad8..0000000
--- a/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/MemberNode.java
+++ /dev/null
@@ -1,120 +0,0 @@
-/***
- * 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
deleted file mode 100644
index f227447..0000000
--- a/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/MethodInsnNode.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/***
- * 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;
- }
-}
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
deleted file mode 100644
index 9d0b2e9..0000000
--- a/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/MethodNode.java
+++ /dev/null
@@ -1,439 +0,0 @@
-/***
- * 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
deleted file mode 100644
index ed81347..0000000
--- a/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/MultiANewArrayInsnNode.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/***
- * 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;
- }
-}
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
deleted file mode 100644
index 840309d..0000000
--- a/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/TableSwitchInsnNode.java
+++ /dev/null
@@ -1,102 +0,0 @@
-/***
- * 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;
- }
-}
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
deleted file mode 100644
index 56b1465..0000000
--- a/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/TryCatchBlockNode.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/***
- * 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
deleted file mode 100644
index 9f830b4..0000000
--- a/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/TypeInsnNode.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/***
- * 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;
- }
-}
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
deleted file mode 100644
index 92e28de..0000000
--- a/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/VarInsnNode.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/***
- * 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;
- }
-}
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
deleted file mode 100644
index cfd4814..0000000
--- a/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/Analyzer.java
+++ /dev/null
@@ -1,416 +0,0 @@
-/***
- * 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
deleted file mode 100644
index c024fba..0000000
--- a/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/AnalyzerException.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/***
- * 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
deleted file mode 100644
index 5e0c702..0000000
--- a/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/BasicInterpreter.java
+++ /dev/null
@@ -1,335 +0,0 @@
-/***
- * 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
deleted file mode 100644
index 46b8cf4..0000000
--- a/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/BasicValue.java
+++ /dev/null
@@ -1,105 +0,0 @@
-/***
- * 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();
- }
- }
-}
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
deleted file mode 100644
index f65b56d..0000000
--- a/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/BasicVerifier.java
+++ /dev/null
@@ -1,428 +0,0 @@
-/***
- * 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
deleted file mode 100644
index 3847d49..0000000
--- a/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/DataflowInterpreter.java
+++ /dev/null
@@ -1,174 +0,0 @@
-/***
- * 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
deleted file mode 100644
index 7b7756f..0000000
--- a/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/DataflowValue.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/***
- * 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
deleted file mode 100644
index 1edf40c..0000000
--- a/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/Frame.java
+++ /dev/null
@@ -1,670 +0,0 @@
-/***
- * 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
deleted file mode 100644
index cac091c..0000000
--- a/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/IntMap.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/***
- * 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;
- }
-}
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
deleted file mode 100644
index f989f4b..0000000
--- a/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/Interpreter.java
+++ /dev/null
@@ -1,178 +0,0 @@
-/***
- * 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
deleted file mode 100644
index 1329f77..0000000
--- a/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/SimpleVerifier.java
+++ /dev/null
@@ -1,266 +0,0 @@
-/***
- * 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
deleted file mode 100644
index 3049d5a..0000000
--- a/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/SmallSet.java
+++ /dev/null
@@ -1,126 +0,0 @@
-/***
- * 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
deleted file mode 100644
index 5ae0109..0000000
--- a/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/Subroutine.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/***
- * 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;
- }
-}
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
deleted file mode 100644
index 4baf1b4..0000000
--- a/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/Value.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/***
- * 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/util/ASMifierAbstractVisitor.java b/libjava/classpath/tools/external/asm/org/objectweb/asm/util/ASMifierAbstractVisitor.java
deleted file mode 100644
index 940bc11..0000000
--- a/libjava/classpath/tools/external/asm/org/objectweb/asm/util/ASMifierAbstractVisitor.java
+++ /dev/null
@@ -1,226 +0,0 @@
-/***
- * 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
deleted file mode 100644
index 0f766b3..0000000
--- a/libjava/classpath/tools/external/asm/org/objectweb/asm/util/ASMifierAnnotationVisitor.java
+++ /dev/null
@@ -1,127 +0,0 @@
-/***
- * 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
deleted file mode 100644
index d7b73fb7..0000000
--- a/libjava/classpath/tools/external/asm/org/objectweb/asm/util/ASMifierClassVisitor.java
+++ /dev/null
@@ -1,607 +0,0 @@
-/***
- * 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:
- * 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
deleted file mode 100644
index 6732179..0000000
--- a/libjava/classpath/tools/external/asm/org/objectweb/asm/util/ASMifierFieldVisitor.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/***
- * 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
deleted file mode 100644
index 57c55ee..0000000
--- a/libjava/classpath/tools/external/asm/org/objectweb/asm/util/ASMifierMethodVisitor.java
+++ /dev/null
@@ -1,347 +0,0 @@
-/***
- * 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
deleted file mode 100644
index 557d5c8..0000000
--- a/libjava/classpath/tools/external/asm/org/objectweb/asm/util/AbstractVisitor.java
+++ /dev/null
@@ -1,201 +0,0 @@
-/***
- * 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
deleted file mode 100644
index 228ff04..0000000
--- a/libjava/classpath/tools/external/asm/org/objectweb/asm/util/CheckAnnotationAdapter.java
+++ /dev/null
@@ -1,125 +0,0 @@
-/***
- * 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
deleted file mode 100644
index 1ca97ad..0000000
--- a/libjava/classpath/tools/external/asm/org/objectweb/asm/util/CheckClassAdapter.java
+++ /dev/null
@@ -1,416 +0,0 @@
-/***
- * 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
deleted file mode 100644
index 3e7c113..0000000
--- a/libjava/classpath/tools/external/asm/org/objectweb/asm/util/CheckFieldAdapter.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/***
- * 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
deleted file mode 100644
index 0123eee..0000000
--- a/libjava/classpath/tools/external/asm/org/objectweb/asm/util/CheckMethodAdapter.java
+++ /dev/null
@@ -1,942 +0,0 @@
-/***
- * 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
deleted file mode 100644
index 8a3d4d0..0000000
--- a/libjava/classpath/tools/external/asm/org/objectweb/asm/util/TraceAbstractVisitor.java
+++ /dev/null
@@ -1,180 +0,0 @@
-/***
- * 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
deleted file mode 100644
index ae812d8..0000000
--- a/libjava/classpath/tools/external/asm/org/objectweb/asm/util/TraceAnnotationVisitor.java
+++ /dev/null
@@ -1,272 +0,0 @@
-/***
- * 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
deleted file mode 100644
index bbadc91..0000000
--- a/libjava/classpath/tools/external/asm/org/objectweb/asm/util/TraceClassVisitor.java
+++ /dev/null
@@ -1,534 +0,0 @@
-/***
- * 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:
- * 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
deleted file mode 100644
index 4d20efd..0000000
--- a/libjava/classpath/tools/external/asm/org/objectweb/asm/util/TraceFieldVisitor.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/***
- * 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
deleted file mode 100644
index 73a511b..0000000
--- a/libjava/classpath/tools/external/asm/org/objectweb/asm/util/TraceMethodVisitor.java
+++ /dev/null
@@ -1,486 +0,0 @@
-/***
- * 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
deleted file mode 100644
index e8346c6..0000000
--- a/libjava/classpath/tools/external/asm/org/objectweb/asm/util/TraceSignatureVisitor.java
+++ /dev/null
@@ -1,300 +0,0 @@
-/***
- * 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
deleted file mode 100644
index e71e116..0000000
--- a/libjava/classpath/tools/external/asm/org/objectweb/asm/util/attrs/ASMStackMapAttribute.java
+++ /dev/null
@@ -1,223 +0,0 @@
-/**
- * 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
deleted file mode 100644
index e591cb9..0000000
--- a/libjava/classpath/tools/external/asm/org/objectweb/asm/util/attrs/ASMStackMapTableAttribute.java
+++ /dev/null
@@ -1,214 +0,0 @@
-/**
- * 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
deleted file mode 100644
index f9067bf..0000000
--- a/libjava/classpath/tools/external/asm/org/objectweb/asm/util/attrs/ASMifiable.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/**
- * 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
deleted file mode 100644
index 44680b5..0000000
--- a/libjava/classpath/tools/external/asm/org/objectweb/asm/util/attrs/Traceable.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/**
- * 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/xml/ASMContentHandler.java b/libjava/classpath/tools/external/asm/org/objectweb/asm/xml/ASMContentHandler.java
deleted file mode 100644
index 826a7fe..0000000
--- a/libjava/classpath/tools/external/asm/org/objectweb/asm/xml/ASMContentHandler.java
+++ /dev/null
@@ -1,1215 +0,0 @@
-/***
- * 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
deleted file mode 100644
index 28bf2ec..0000000
--- a/libjava/classpath/tools/external/asm/org/objectweb/asm/xml/Processor.java
+++ /dev/null
@@ -1,1048 +0,0 @@
-/***
- * 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.
- *
- *
- *
- * @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
implementation, instructing it to
- * ignore malformed input without replacing it; to replace it with a
- * different string; or to throw an exception when malformed input is
- * encountered. However, you cannot configure an
- * InputStreamReader to gracefully handle malformed data
- * but notify the client code about such
- * problems. NotifyingInputStreamReader fills this
- * gap.
- *
- * @author Julian Scheid
- */
-public class NotifyingInputStreamReader
- extends Reader
-{
- /**
- * The default size (in bytes) for byteBuf, i.e. the size of data
- * chunks read from the underlying input stream.
- */
- private static final int DEFAULT_INPUT_BUFFER_SIZE = 64;
-
- /**
- * The default size (in chars) for charBuf. This should be large
- * enough to hold a decoded chunk of input data for the Charset
- * with the minimum number of bytes per character. Since the
- * minimum number of bytes per character for usual Charsets is
- * one, this number should be identical to
- * DEFAULT_INPUT_BUFFER_SIZE.
- */
- private static final int DEFAULT_OUTPUT_BUFFER_SIZE = 64;
-
- /**
- * The underlying InputStream.
- */
- private InputStream in;
-
- /**
- * The CharsetDecoder used to decode the underlying stream.
- */
- private CharsetDecoder decoder;
-
- /**
- * Holds bytes already read from the underlying stream, but not
- * yet decoded.
- */
- private ByteBuffer byteBuffer;
-
- /**
- * Holds characters already decoded, but not yet fetched via
- * read().
- */
- private CharBuffer charBuffer;
-
- /**
- * This is the primitive byte array wrapped in byteBuffer for
- * passing to to InputStream.read().
- */
- private byte[] readBuffer;
-
- /**
- * Keeps track of the current line number (1-based).
- */
- private int lineNumber = 1;
-
- /**
- * Keeps track of the current column number (0-based).
- */
- private int columnNumber = 0;
-
- /**
- * Becomes true as soon as EOF has been reached in the underlying
- * InputStream. At this point, byteBuffer contains the last chunk
- * of data from the underlying InputStream.
- */
- private boolean allInputConsumed = false;
-
- /**
- * Becomes true as soon as the decoder has been supplied with the
- * last chunk of data from the InputStream after EOF has been
- * reached. At this point, the last chunk of data has been drained
- * from the byteBuffer.
- */
- private boolean decodingFinished = false;
-
- /**
- * Becomes true as soon as the decoder has been flushed. At this
- * point, the last chunk of character data has been written to the
- * charBuffer.
- */
- private boolean flushed = false;
-
- /**
- * Stores all registered MalformedInputListeners.
- */
- private Set listeners = new LinkedHashSet();
-
- /**
- * Initializes a new instance for reading from the given
- * InputStream using the default encoding. The default encoding is
- * currently determined by looking at the system property
- * file.encoding. If this property isn't set,
- * ISO-8859-1 is used as a fallback.
- *
- *
This method should use {@link Charset.defaultCharset()}
- * instead, but this isn't implemented in Classpath at the
- * moment.
- *
- * @param in the InputStream to read from.
- */
- public NotifyingInputStreamReader(InputStream in)
- {
- this(in, System.getProperty("file.encoding", "ISO-8859-1"));
- }
-
- /**
- * Initializes a new instance for reading from the given
- * InputStream using the specified charset.
- *
- * @param in the InputStream to read from.
- * @param charsetName the canonical name or an alias of a
- * Charset.
- *
- * @throws IllegalCharsetNameException if there is no
- * Charset with the given canonical name or alias.
- *
- * @throws UnsupportedCharsetException if there is no support for
- * the specified Charset in the runtime environment.
- */
- public NotifyingInputStreamReader(InputStream in, String charsetName)
- throws IllegalCharsetNameException, UnsupportedCharsetException
- {
- this(in, Charset.forName(charsetName));
- }
-
- /**
- * Initializes a new instance for reading from the given
- * InputStream using the specified charset.
- *
- * @param in the InputStream to read from.
- * @param charset the Charset to use for decoding
- * characters.
- */
- public NotifyingInputStreamReader(InputStream in, Charset charset)
- {
- this(in, charset.newDecoder());
- }
-
- /**
- * Initializes a new instance for reading from the given
- * InputStream using the specified charset decoder.
- *
- * Note: the
- * NotifyingInputStreamReader will not exhibit the
- * advertised behaviour if you changed the action to take on
- * malformed input in the specified
- * CharsetDecoder. In other words, you should not
- * call {@link CharsetDecoder.onMalformedInput(CodingErrorAction)}
- * on the specified decoder before or while this reader is being
- * used unless you know what you're doing.
- *
- * @param in the InputStream to read from.
- * @param charset the CharsetDecoder to use for
- * decoding characters.
- */
- public NotifyingInputStreamReader(InputStream in, CharsetDecoder decoder)
- {
- this.in = in;
- this.decoder = decoder;
- this.charBuffer = CharBuffer.wrap(new char[DEFAULT_INPUT_BUFFER_SIZE]);
- this.charBuffer.position(charBuffer.limit());
- this.readBuffer = new byte[DEFAULT_OUTPUT_BUFFER_SIZE];
- this.byteBuffer = ByteBuffer.wrap(readBuffer);
- this.byteBuffer.position(byteBuffer.limit());
- }
-
- public void close()
- throws IOException
- {
- in.close();
- }
-
- /**
- * Fill charBuffer with new character data. This method returns if
- * either the charBuffer has been filled completely with decoded
- * character data, or if EOF is reached in the underlying
- * InputStream. When this method returns, charBuffer is flipped
- * and ready to be read from.
- */
- private void fillCharBuf()
- throws IOException
- {
- charBuffer.clear();
- outer:
- while (!flushed) {
- CoderResult coderResult;
- int charBufferPositionBefore = charBuffer.position();
- if (!decodingFinished) {
- coderResult = decoder.decode(byteBuffer, charBuffer, allInputConsumed);
- if (allInputConsumed) {
- decodingFinished = true;
- }
- }
- else {
- coderResult = decoder.flush(charBuffer);
- flushed = coderResult.isUnderflow();
- }
-
- int charBufferPositionAfter = charBuffer.position();
- for (int i=charBufferPositionBefore; i 0) {
- nRemainingBytes = Math.max(0, byteBuffer.limit() - byteBuffer.position());
- }
- if (nRemainingBytes > 0) {
- byteBuffer.get(readBuffer, 0, nRemainingBytes);
- }
- byteBuffer.rewind();
- int nread = in.read(readBuffer, nRemainingBytes,
- readBuffer.length - nRemainingBytes);
- if (nread < 0) {
- allInputConsumed = true;
- }
- byteBuffer.limit(nRemainingBytes + Math.max(0, nread));
- }
- else {
- break;
- }
- }
- else if (coderResult.isMalformed()) {
- fireMalformedInputEncountered(coderResult.length());
- String replacement = decoder.replacement();
- for (int i=0; i replacement.length()) {
- charBuffer.put(replacement);
- byteBuffer.position(byteBuffer.position() + 1);
- columnNumber ++;
- }
- else {
- break outer;
- }
- }
- }
- else if (coderResult.isUnmappable()) {
- // This should not happen, since unmappable input bytes
- // trigger a "malformed" event instead.
- coderResult.throwException();
- }
- else {
- // This should only happen if run in a future environment
- // where additional events apart from underflow, overflow,
- // malformed and unmappable can be generated.
- coderResult.throwException();
- }
- }
- charBuffer.flip();
- }
-
- /**
- * Fire a MalformedInputEvent, notifying all registered listeners.
- */
- private void fireMalformedInputEncountered(int length)
- {
- MalformedInputEvent event
- = new MalformedInputEvent(this, lineNumber, columnNumber, length);
- Iterator it = listeners.iterator();
- while (it.hasNext()) {
- MalformedInputListener listener
- = (MalformedInputListener)it.next();
- listener.malformedInputEncountered(event);
- }
- }
-
- public int read(char[] cbuf, int offset, int length)
- throws IOException
- {
- if (flushed) {
- return -1;
- }
- else {
- int nread = 0;
- while (nread < length && !flushed) {
- while (charBuffer.hasRemaining() && nread < length) {
- int copyLen = Math.min(length - nread,
- charBuffer.remaining());
- charBuffer.get(cbuf, offset + nread, copyLen);
- nread += copyLen;
- }
- if (nread < length) {
- fillCharBuf();
- }
- }
- return nread;
- }
- }
-
- public int read()
- throws IOException
- {
- while (!flushed) {
- if (charBuffer.hasRemaining()) {
- return charBuffer.get();
- }
- else {
- fillCharBuf();
- }
- }
- return -1;
- }
-
- /**
- * Returns whether this reader is ready. The reader is ready if
- * there is data in the internal buffer, or if additional data can
- * be read from the underlying InputStream.
- */
- public boolean ready()
- {
- return charBuffer.hasRemaining() || !flushed;
- }
-
- /**
- * Register a MalformedInputListener which should be
- * notified when malformed input is encountered.
- */
- public void addMalformedInputListener(MalformedInputListener listener)
- {
- this.listeners.add(listener);
- }
-
- /**
- * Unregister a previously registered
- * MalformedInputListener if it should no longer be
- * notified when malformed input is encountered.
- */
- public void removeMalformedInputListener(MalformedInputListener listener)
- {
- this.listeners.remove(listener);
- }
-
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/StringToolkit.java b/libjava/classpath/tools/gnu/classpath/tools/StringToolkit.java
deleted file mode 100644
index dbb5527..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/StringToolkit.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/* gnu.classpath.tools.StringToolkit
- 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., 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 gnu.classpath.tools;
-
-/**
- * Provides various String-related helper methods.
- *
- * @author Julian Scheid
- */
-public class StringToolkit
-{
- /**
- * Prevents instantiation.
- */
- private StringToolkit() {}
-
- /**
- * Return haystack with all occurrences of
- * needle replaced by replacement.
- *
- * @param haystack the string to replace occurrences of needle in
- * @param needle the substring to replace
- * @param replacement the substring to replace needle with
- *
- * @return haystack with all occurrences of
- * needle replaced by replacement.
- */
- public static String replace(String haystack, String needle, String replacement)
- {
- int ndx = haystack.indexOf(needle);
- if (ndx < 0) {
- return haystack;
- }
- else {
- StringBuffer result = new StringBuffer();
- result.append(haystack.substring(0, ndx));
- result.append(replacement);
- ndx += needle.length();
- int ndx2;
- while ((ndx2 = haystack.indexOf(needle, ndx)) >= 0) {
- result.append(haystack.substring(ndx, ndx2));
- result.append(replacement);
- ndx = ndx2 + needle.length();
- }
- result.append(haystack.substring(ndx));
- return result.toString();
- }
- }
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/appletviewer/AppletClassLoader.java b/libjava/classpath/tools/gnu/classpath/tools/appletviewer/AppletClassLoader.java
deleted file mode 100644
index dfbedfe..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/appletviewer/AppletClassLoader.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/* AppletClassLoader -- a loader for applet classes
- 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. */
-
-package gnu.classpath.tools.appletviewer;
-
-import java.net.URL;
-import java.net.URLClassLoader;
-import java.util.ArrayList;
-
-public class AppletClassLoader extends URLClassLoader
-{
- /**
- * Constructs a new AppletLoader object.
- *
- * @param codebase the codebase of the applet
- * @param archives the urls to add to the search path
- */
- public AppletClassLoader(URL codebase, ArrayList archives)
- {
- super(new URL[0]);
-
- for (int count = 0; count < archives.size(); count++)
- addURL((URL) archives.get(count));
-
- addURL(codebase);
- }
-
- /**
- * Finds the specified class. This method should be overridden by
- * class loader implementations that follow the delegation model for
- * loading classes, and will be invoked by the loadClass method after
- * checking the parent class loader for the requested class. The default
- * implementation throws a ClassNotFoundException.
- *
- * (description copied from java.lang.ClassLoader.findClass(String))
- *
- * @param name The name of the class.
- *
- * @return the resulting Class object.
- *
- * @exception ClassNotFoundException if the class is not found.
- */
- protected Class findClass(String name) throws ClassNotFoundException
- {
- return super.findClass(name);
- }
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/appletviewer/AppletSecurityManager.java b/libjava/classpath/tools/gnu/classpath/tools/appletviewer/AppletSecurityManager.java
deleted file mode 100644
index 6522a9e..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/appletviewer/AppletSecurityManager.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/* AppletSecurityManager.java -- an applet security manager
- 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. */
-
-package gnu.classpath.tools.appletviewer;
-
-import java.io.FilePermission;
-import java.net.SocketPermission;
-import java.security.Permission;
-import java.security.SecurityPermission;
-import java.util.PropertyPermission;
-
-class AppletSecurityManager extends SecurityManager
-{
- private boolean plugin;
-
- AppletSecurityManager(boolean plugin)
- {
- this.plugin = plugin;
- }
-
- public void checkPermission(Permission permission)
- {
- if (permission == null)
- throw new NullPointerException();
-
- // FIXME: we need to restrict this.
- //
- // libgcj asks for "java.io.FilePermission <> execute"
- // to be able to execute "addr2line" to get proper stack traces.
- if (permission instanceof FilePermission)
- return;
-
- // FIXME: we need to restrict this.
- if (permission instanceof SecurityPermission)
- return;
-
- // FIXME: is this really needed ?
- if (permission instanceof PropertyPermission)
- return;
-
- // Needed to allow to access AWT event queue.
- if (permission.getName().equals("accessEventQueue"))
- return;
-
- // Needed to create a class loader for each codebase.
- if (permission.getName().equals("createClassLoader"))
- return;
-
- // FIXME: we need to allow access to codebase here.
-
- if (permission instanceof SocketPermission // for net access
- || permission instanceof RuntimePermission) // for checkWrite(FileDescriptor)
- return;
-
- if (! plugin && permission.getName().equals("exitVM"))
- return;
-
- // Reject all other permissions.
- throw new SecurityException();
- }
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/appletviewer/AppletTag.java b/libjava/classpath/tools/gnu/classpath/tools/appletviewer/AppletTag.java
deleted file mode 100644
index d3910a2..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/appletviewer/AppletTag.java
+++ /dev/null
@@ -1,489 +0,0 @@
-/* AppletTag.java -- a representation of an HTML APPLET tag
- 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. */
-
-package gnu.classpath.tools.appletviewer;
-
-import gnu.xml.dom.html2.DomHTMLAppletElement;
-import gnu.xml.dom.html2.DomHTMLEmbedElement;
-import gnu.xml.dom.html2.DomHTMLObjectElement;
-
-import java.awt.Dimension;
-import java.awt.Toolkit;
-
-import java.io.File;
-
-import java.net.MalformedURLException;
-import java.net.URL;
-
-import java.text.NumberFormat;
-import java.text.ParseException;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Locale;
-
-/**
- * @author Lillian Angel (langel@redhat.com)
- * @author Thomas Fitzsimmons (fitzsim@redhat.com)
- */
-class AppletTag
-{
-
- /**
- * The document base of this applet.
- */
- URL documentbase;
-
- /**
- * name of applet tag.
- */
- String name = "";
-
- /**
- * code of applet tag.
- */
- String code = "";
-
- /**
- * codebase of applet tag.
- */
- String codebase = "";
-
- /**
- * The archives.
- */
- ArrayList archives = new ArrayList();
-
- /**
- * The parameters.
- */
- HashMap parameters = new HashMap();
-
- /**
- * The screen size.
- */
- Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
-
- /**
- * Default constructor.
- */
- AppletTag()
- {
- // Do nothing.
- }
-
- /**
- * Constructs an AppletTag and parses the given applet element.
- *
- * @param appElement - the Applet element to parse.
- */
- AppletTag(DomHTMLAppletElement appElement)
- {
- name = appElement.getName();
- parameters.put("name", name);
-
- parameters.put("object", appElement.getObject());
- parameters.put("align", appElement.getAlign());
- parameters.put("alt", appElement.getAlt());
- parameters.put("height", appElement.getHeight());
- parameters.put("hspace", Integer.toString(appElement.getHspace()));
- parameters.put("vspace", Integer.toString(appElement.getVspace()));
- parameters.put("width", appElement.getWidth());
-
- TagParser.parseParams(appElement, this);
-
- if (code.equals(""))
- {
- code = appElement.getCode();
- if (code.equals(""))
- code = appElement.getCls();
- }
-
- // Must initialize codebase before archives
- if (codebase.equals(""))
- {
- codebase = appElement.getCodeBase();
- if (codebase.equals(""))
- codebase = appElement.getSrc();
- }
-
- if (archives.size() == 0)
- {
- String arcs = "";
- String arch = appElement.getArchive();
-
- if (code.indexOf(".") < 0)
- arcs = code + ".jar";
-
- if (!arch.equals(""))
- arcs += "," + arch;
-
- if (!arcs.equals(""))
- archives = TagParser.parseArchives(arcs, this);
- }
- }
-
- /**
- * Constructs an AppletTag and parses the given embed element.
- *
- * @param embElement - the Embed element to parse.
- */
- AppletTag(DomHTMLEmbedElement embElement)
- {
- // In an EMBED tag, a parameter is any non-standard attribute. This
- // is a problem for applets that take parameters named "code",
- // "codebase", "archive", "object", or "type". The solution is to
- // allow the same attributes, prefixed by "java_". The presence of
- // a "java_" attribute indicates that the non-prefixed attribute
- // should be interpreted as a parameter. For example if "java_code"
- // and "code" attributes are present in the EMBED tag then the
- // "code" attribute is interpreted as a parameter.
-
- name = embElement.getName();
- parameters.put("name", name);
-
- String jobj = embElement.getJavaObject();
- if (!jobj.equals(""))
- parameters.put("java_object", jobj);
- else
- parameters.put("object", embElement.getObject());
-
- parameters.put("width", embElement.getWidth());
- parameters.put("height", embElement.getHeight());
- parameters.put("align", embElement.getAlign());
- parameters.put("alt", embElement.getAlt());
- parameters.put("hspace", Integer.toString(embElement.getHspace()));
- parameters.put("mayscript", embElement.getMayscript());
- parameters.put("pluginspage", embElement.getPluginsPage());
- parameters.put("title", embElement.getTitle());
- parameters.put("type", embElement.getType());
- parameters.put("java_type", embElement.getJavaType());
- parameters.put("vspace", Integer.toString(embElement.getVspace()));
-
- TagParser.parseParams(embElement, this);
-
- // Must initialize codebase before archives
- if (codebase.equals(""))
- {
- String javacb = embElement.getJavaCodeBase();
- if (!javacb.equals(""))
- codebase = javacb;
- else
- codebase = embElement.getCodeBase();
- }
-
- if (code.equals(""))
- {
- String jcode = embElement.getJavaCode();
- if (!jcode.equals(""))
- code = jcode;
- else
- code = embElement.getCode();
- }
-
- if (archives.size() == 0)
- {
- String arcs = "";
- String jarch = embElement.getJavaArchive();
- String arch = embElement.getArchive();
-
- if (code.indexOf(".") < 0)
- arcs = code + ".jar";
-
- if (!jarch.equals(""))
- arcs += "," + jarch;
- else if (!arch.equals(""))
- arcs += "," + arch;
-
- if (!arcs.equals(""))
- archives = TagParser.parseArchives(arcs, this);
- }
- }
-
- /**
- * Constructs an AppletTag and parses the given object element.
- *
- * @param objElement - the Object element to parse.
- */
- AppletTag(DomHTMLObjectElement objElement)
- {
- // In an OBJECT tag, a parameter is any non-standard attribute. This
- // is a problem for applets that take parameters named "code",
- // "codebase", "archive", "object", or "type". The solution is to
- // allow the same attributes, prefixed by "java_". The presence of
- // a "java_" attribute indicates that the non-prefixed attribute
- // should be interpreted as a parameter. For example if "java_code"
- // and "code" attributes are present in the OBJECT tag then the
- // "code" attribute is interpreted as a parameter.
-
- name = objElement.getName();
- parameters.put("name", name);
-
- String jobj = objElement.getJavaObject();
- if (!jobj.equals(""))
- parameters.put("java_object", jobj);
- else
- parameters.put("object", objElement.getObject());
-
- parameters.put("type", objElement.getType());
- parameters.put("java_type", objElement.getJavaType());
- parameters.put("align", objElement.getAlign());
- parameters.put("codetype", objElement.getCodeType());
- parameters.put("data", objElement.getData());
- parameters.put("declare", Boolean.toString(objElement.getDeclare()));
- parameters.put("height", objElement.getHeight());
- parameters.put("hspace", Integer.toString(objElement.getHspace()));
- parameters.put("border", objElement.getBorder());
- parameters.put("standby", objElement.getStandby());
- parameters.put("tabindex", Integer.toString(objElement.getTabIndex()));
- parameters.put("usemap", objElement.getUseMap());
- parameters.put("vspace", Integer.toString(objElement.getVspace()));
- parameters.put("width", objElement.getWidth());
- parameters.put("mayscript", objElement.getMayscript());
- parameters.put("scriptable", objElement.getScriptable());
-
- TagParser.parseParams(objElement, this);
-
- // Must initialize codebase before archives
- if (codebase.equals(""))
- {
- String javacb = objElement.getJavaCodeBase();
- if (! javacb.equals(""))
- codebase = javacb;
- else
- codebase = objElement.getCodeBase();
- }
-
- if (code.equals(""))
- {
- String jcode = objElement.getJavaCode();
- if (!jcode.equals(""))
- code = jcode;
- else
- code = objElement.getCode();
- }
-
- if (archives.size() == 0)
- {
- String arcs = "";
- String jarch = objElement.getJavaArchive();
- String arch = objElement.getArchive();
-
- if (code.indexOf(".") < 0)
- arcs = code + ".jar";
-
- if (!jarch.equals(""))
- arcs += "," + jarch;
- else if (!arch.equals(""))
- arcs += "," + arch;
-
- if (!arcs.equals(""))
- archives = TagParser.parseArchives(arcs, this);
- }
- }
-
- /**
- * String representation of the tag.
- *
- * @return the string representation.
- */
- public String toString()
- {
- return (" name=" + name + "\n" + " code=" + code + "\n" + " codebase="
- + codebase + "\n" + " archive=" + archives + "\n" + " parameters="
- + parameters + "\n" + " documentbase=" + documentbase + "\n");
- }
-
- /**
- * Returns the size of the applet.
- *
- * @return the size.
- */
- Dimension getSize()
- {
- Dimension size = new Dimension(320, 200);
-
- try
- {
- String widthStr = (String) parameters.get("width");
-
- if (widthStr != null && ! widthStr.equals(""))
- {
- if (widthStr.charAt(widthStr.length() - 1) == '%')
- {
- double p = NumberFormat.getPercentInstance(Locale.US).parse(widthStr).intValue() / 100.0;
- size.width = (int)(p * screenSize.width);
- }
- else
- size.width = NumberFormat.getInstance(Locale.US).parse(widthStr).intValue();
- }
- }
- catch (ParseException e)
- {
- // Use default.
- }
-
- try
- {
- String heightStr = (String) parameters.get("height");
-
- if (heightStr != null && !heightStr.equals(""))
- {
- if (heightStr.charAt(heightStr.length() - 1) == '%')
- {
- double p = NumberFormat.getPercentInstance(Locale.US).parse(heightStr).intValue() / 100.0;
- size.height = (int) (p * screenSize.height);
- }
- else
- size.height = NumberFormat.getInstance(Locale.US).parse(heightStr).intValue();
- }
- }
- catch (ParseException e)
- {
- // Use default.
- }
-
- return size;
- }
-
- /**
- * Gets the code base.
- *
- * @return the codebase.
- */
- String getCodeBase()
- {
- return codebase;
- }
-
- /**
- * Gets the archive list.
- *
- * @return the archive list.
- */
- ArrayList getArchives()
- {
- return archives;
- }
-
- /**
- * Gets the code.
- *
- * @return the code.
- */
- String getCode()
- {
- return code;
- }
-
- /**
- * Gets the document base.
- *
- * @return the document base.
- */
- URL getDocumentBase()
- {
- return documentbase;
- }
-
- /**
- * Gets the specified parameter.
- *
- * @param name - the specified parameter.
- * @return the parameter.
- */
- String getParameter(String name)
- {
- return (String) parameters.get(name.toLowerCase());
- }
-
- /**
- * Prepends the base to the codebase.
- *
- * @return the new URL.
- */
- URL prependCodeBase(String base) throws MalformedURLException
- {
- if (documentbase == null)
- documentbase = TagParser.db;
-
- URL fullcodebase;
-
- //If no codebase was specified, default to documentbase.
- if (codebase.equals(""))
- {
- if (documentbase.getFile().endsWith(File.separator))
- fullcodebase = documentbase;
- else
- {
- String dirname = documentbase.getFile();
- if (dirname.indexOf(".") < 0)
- fullcodebase = new URL(documentbase + File.separator);
- else
- {
- // Determine dirname for file by stripping everything
- // past the last file separator.
- dirname = dirname.substring(0,
- dirname.lastIndexOf(File.separatorChar) + 1);
-
- fullcodebase = new URL(documentbase.getProtocol(),
- documentbase.getHost(),
- documentbase.getPort(), dirname);
- }
- }
- }
- else
- {
- // codebase was specified.
- URL codebaseURL = new URL(documentbase, codebase);
-
- if ("file".equals(codebaseURL.getProtocol()))
- {
- if (new File(codebaseURL.getFile()).isDirectory() && !codebase.endsWith(File.separator))
- fullcodebase = new URL(documentbase, codebase + File.separator);
- else
- fullcodebase = new URL(documentbase, codebase);
- }
- else if (codebase.endsWith(File.separator))
- fullcodebase = new URL(documentbase, codebase);
- else
- fullcodebase = new URL(documentbase, codebase + File.separator);
- }
-
- return new URL(fullcodebase, base);
- }
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/appletviewer/CommonAppletContext.java b/libjava/classpath/tools/gnu/classpath/tools/appletviewer/CommonAppletContext.java
deleted file mode 100644
index ebdd359..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/appletviewer/CommonAppletContext.java
+++ /dev/null
@@ -1,133 +0,0 @@
-/* CommonAppletContext.java -- a common applet's context
- Copyright (C) 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.classpath.tools.appletviewer;
-
-import java.applet.Applet;
-import java.applet.AppletContext;
-import java.applet.AudioClip;
-import java.awt.Image;
-import java.awt.Toolkit;
-import java.io.InputStream;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Enumeration;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-
-
-/*
- * CommonAppletContext represents the common context stuff for both
- * types, plugins and standalone.
- */
-abstract class CommonAppletContext
- implements AppletContext
-{
- // FIXME: this needs to be static, and we need one AppletContext per
- // Applet.
- List applets = new ArrayList();
- HashMap streams = new HashMap();
-
- void addApplet(Applet applet)
- {
- applets.add(applet);
- }
-
- ///////////////////////////////
- //// AppletContext methods ////
- ///////////////////////////////
- public AudioClip getAudioClip(URL url)
- {
- return Applet.newAudioClip(url);
- }
-
- public Image getImage(URL url)
- {
- return Toolkit.getDefaultToolkit().getImage(url);
- }
-
- public Applet getApplet(String name)
- {
- Applet a;
- String appletName;
- Iterator i = applets.iterator();
-
- while (i.hasNext())
- {
- a = (Applet) i.next();
-
- appletName = a.getParameter("name");
- if (a != null && appletName != null && appletName.equals(name))
- return a;
- }
- return null;
- }
-
- public Enumeration getApplets()
- {
- return Collections.enumeration(applets);
- }
-
- public void showDocument(URL url)
- {
- showDocument(url, "_self");
- }
-
- /*
- // FIXME: implement.
- public abstract void showDocument (URL url, String target);
-
- // FIXME: implement.
- public abstract void showStatus (String status);
- */
- public void setStream(String key, InputStream stream)
- {
- streams.put(key, stream);
- }
-
- public InputStream getStream(String key)
- {
- return (InputStream) streams.get(key);
- }
-
- public Iterator getStreamKeys()
- {
- return streams.keySet().iterator();
- }
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/appletviewer/CommonAppletStub.java b/libjava/classpath/tools/gnu/classpath/tools/appletviewer/CommonAppletStub.java
deleted file mode 100644
index bf14db5..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/appletviewer/CommonAppletStub.java
+++ /dev/null
@@ -1,139 +0,0 @@
-/* CommonAppletStub.java -- an applet-browser interface class
- 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., 51 Franklin Street, Fifth Floor, Boston, MA
-02110-1301 USA.
-
-Linking this library statically or dynamically with other modules is
-making a combined work based on this library. Thus, the terms and
-conditions of the GNU General Public License cover the whole
-combination.
-
-As a special exception, the copyright holders of this library give you
-permission to link this library with independent modules to produce an
-executable, regardless of the license terms of these independent
-modules, and to copy and distribute the resulting executable under
-terms of your choice, provided that you also meet, for each linked
-independent module, the terms and conditions of the license of that
-module. An independent module is a module which is not derived from
-or based on this library. If you modify this library, you may extend
-this exception to your version of the library, but 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.applet.AppletContext;
-import java.applet.AppletStub;
-import java.applet.Applet;
-import java.net.MalformedURLException;
-import java.net.URL;
-
-
-class CommonAppletStub
- implements AppletStub
-{
- private AppletTag tag;
- private AppletContext context;
- private Applet applet;
-
- CommonAppletStub(AppletTag tag, AppletContext context, Applet applet)
- {
- this.tag = tag;
- this.context = context;
- this.applet = applet;
- }
-
- ////////////////////////////////
- ////// AppletStub Methods //////
- ////////////////////////////////
-
- /**
- * Tests whether or not this applet is currently active. An applet
- * becomes active just before the browser invokes start (), and
- * becomes inactive just before the browser invokes stop ().
- *
- * @return true if applet is active, false otherwise
- */
- public boolean isActive()
- {
- return true;
- }
-
- /**
- * Returns the basename URL of the document in which this applet is
- * embedded.
- *
- * @return the document base url.
- */
- public URL getDocumentBase()
- {
- return tag.getDocumentBase();
- }
-
- /**
- * Returns the URL of the code base for this applet.
- *
- * @return the codebase url
- */
- public URL getCodeBase()
- {
- try
- {
- return tag.prependCodeBase("");
- }
- catch (MalformedURLException e)
- {
- throw new RuntimeException("Attempted to create"
- + " invalid codebase URL.", e);
- }
- }
-
- /**
- * Returns the value of the specified parameter that was specified
- * in the APPLET tag for this applet.
- *
- * @param name the key name
- *
- * @return the key value
- */
- public String getParameter(String name)
- {
- return tag.getParameter(name.toLowerCase());
- }
-
- /**
- * Returns the applet context for this applet.
- *
- * @return the context
- */
- public AppletContext getAppletContext()
- {
- return context;
- }
-
- /**
- * Requests that the applet window for this applet be resized.
- *
- * @param width the new witdh
- * @param height the new height
- */
- public void appletResize(int width, int height)
- {
- applet.setBounds (0, 0, width, height);
- }
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/appletviewer/ErrorApplet.java b/libjava/classpath/tools/gnu/classpath/tools/appletviewer/ErrorApplet.java
deleted file mode 100644
index 059dbee..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/appletviewer/ErrorApplet.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/* ErrorApplet.java -- an applet to load in case of an error
- 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. */
-
-package gnu.classpath.tools.appletviewer;
-
-import java.applet.Applet;
-import java.awt.BorderLayout;
-import java.awt.Button;
-
-public class ErrorApplet extends Applet
-{
- public ErrorApplet(String message)
- {
- setLayout(new BorderLayout());
-
- Button button = new Button(message);
- add(button);
- }
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/appletviewer/Main.java b/libjava/classpath/tools/gnu/classpath/tools/appletviewer/Main.java
deleted file mode 100644
index f6e02db..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/appletviewer/Main.java
+++ /dev/null
@@ -1,323 +0,0 @@
-/* Main.java -- a standalone viewer for Java 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 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;
-import java.util.HashMap;
-import java.util.List;
-
-
-class Main
-{
- private static HashMap classLoaderCache = new HashMap();
-
- private static ClassLoader getClassLoader(URL codebase, ArrayList archives)
- {
- // Should load class loader each time. It is possible that there
- // are more than one applet to be loaded with different archives.
- AppletClassLoader loader = new AppletClassLoader(codebase, archives);
- classLoaderCache.put(codebase, loader);
-
- return loader;
- }
-
- private static String code = null;
- private static String codebase = null;
- private static String archive = null;
- private static List parameters = new ArrayList();
- private static Dimension dimensions = new Dimension(-1, -1);
- private static String pipeInName = null;
- private static String pipeOutName = null;
- private static boolean pluginMode = false;
- private static Parser parser = null;
-
- static Applet createApplet(AppletTag tag)
- {
- Applet applet = null;
-
- try
- {
- ClassLoader loader = getClassLoader(tag.prependCodeBase(""),
- tag.getArchives());
- String code = tag.getCode();
-
- if (code.endsWith(".class"))
- code = code.substring(0, code.length() - 6).replace('/', '.');
-
- Class c = loader.loadClass(code);
- applet = (Applet) c.newInstance();
- }
- catch (Exception e)
- {
- e.printStackTrace();
- }
-
- if (applet == null)
- applet = new ErrorApplet(Messages.getString ("Main.ErrorApplet"));
-
- return applet;
- }
-
- protected static boolean verbose;
-
- /**
- * The main method starting the applet viewer.
- *
- * @param args the arguments given on the command line.
- *
- * @exception IOException if an error occurs.
- */
- public static void main(String[] args) throws IOException
- {
- parser = new ClasspathToolParser("appletviewer", true);
- parser.setHeader(Messages.getString("Main.Usage"));
-
- OptionGroup attributeGroup
- = new OptionGroup(Messages.getString("Main.AppletTagOptions"));
-
- 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",
- Messages.getString("Main.CodebaseDescription"),
- Messages.getString("Main.CodebaseArgument"))
- {
- public void parsed(String argument) throws OptionException
- {
- codebase = argument;
- }
- });
- 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",
- 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",
- 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",
- Messages.getString("Main.ParamDescription"),
- Messages.getString("Main.ParamArgument"))
- {
- public void parsed(String argument) throws OptionException
- {
- parameters.add(argument);
- }
- });
- 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
- {
- pluginMode = true;
- int comma = argument.indexOf(',');
- pipeInName = argument.substring(0, comma);
- pipeOutName = argument.substring(comma + 1);
- }
- });
- 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(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",
- Messages.getString("Main.EncodingDescription"),
- Messages.getString("Main.EncodingArgument"))
- {
- public void parsed(String argument) throws OptionException
- {
- // FIXME: We should probably be using
- // java.nio.charset.CharsetDecoder to handle the encoding. What
- // is the status of Classpath's implementation?
- }
- });
- parser.add(attributeGroup);
- parser.add(pluginGroup);
- parser.add(debuggingGroup);
- parser.add(compatibilityGroup);
-
- String[] urls = parser.parse(args);
-
- // Print arguments.
- printArguments(args);
-
- args = urls;
-
- if (dimensions.height < 0)
- dimensions.height = 200;
-
- if (dimensions.width < 0)
- dimensions.width = (int) (1.6 * dimensions.height);
-
- //System.setSecurityManager(new AppletSecurityManager(pluginMode));
-
- if (pluginMode)
- {
- // Plugin will warn user about missing security manager.
- InputStream in;
- OutputStream out;
-
- in = new FileInputStream(pipeInName);
- out = new FileOutputStream(pipeOutName);
-
- PluginAppletViewer.start(in, out);
- }
- 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(Messages.getString("Main.NoInputFiles"));
- System.exit(1);
- }
- // Create a standalone appletviewer from a list of URLs.
- new StandaloneAppletViewer(args);
- }
- else
- {
- // Create a standalone appletviewer from the --code
- // option.
- new StandaloneAppletViewer(code, codebase, archive,
- parameters, dimensions);
- }
- }
- }
-
- static void printArguments(String[] args)
- {
- if (verbose)
- {
- 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
deleted file mode 100644
index 614a509..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/appletviewer/Messages.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/* 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
deleted file mode 100644
index bc445a6..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/appletviewer/PluginAppletContext.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/* PluginAppletContext.java -- an applet's context within a web browser
- 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., 51 Franklin Street, Fifth Floor, Boston, MA
-02110-1301 USA.
-
-Linking this library statically or dynamically with other modules is
-making a combined work based on this library. Thus, the terms and
-conditions of the GNU General Public License cover the whole
-combination.
-
-As a special exception, the copyright holders of this library give you
-permission to link this library with independent modules to produce an
-executable, regardless of the license terms of these independent
-modules, and to copy and distribute the resulting executable under
-terms of your choice, provided that you also meet, for each linked
-independent module, the terms and conditions of the license of that
-module. An independent module is a module which is not derived from
-or based on this library. If you modify this library, you may extend
-this exception to your version of the library, but 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.net.URL;
-import java.io.IOException;
-
-/*
- * PluginAppletContext represents the context within a webpage of a
- * group of applets that all share the same codebase.
- */
-class PluginAppletContext extends CommonAppletContext
-{
- public void showDocument(URL url, String target)
- {
- try
- {
- PluginAppletViewer.write("url " + url + " " + target);
- }
- catch(IOException e)
- {
- throw new RuntimeException("showDocument failed.", e);
- }
- }
-
- public void showStatus(String status)
- {
- try
- {
- PluginAppletViewer.write("status " + status);
- }
- catch(IOException 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
deleted file mode 100644
index da8399b..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/appletviewer/PluginAppletViewer.java
+++ /dev/null
@@ -1,178 +0,0 @@
-/* PluginAppletViewer.java -- manages embeddable applet windows
- 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., 51 Franklin Street, Fifth Floor, Boston, MA
-02110-1301 USA.
-
-Linking this library statically or dynamically with other modules is
-making a combined work based on this library. Thus, the terms and
-conditions of the GNU General Public License cover the whole
-combination.
-
-As a special exception, the copyright holders of this library give you
-permission to link this library with independent modules to produce an
-executable, regardless of the license terms of these independent
-modules, and to copy and distribute the resulting executable under
-terms of your choice, provided that you also meet, for each linked
-independent module, the terms and conditions of the license of that
-module. An independent module is a module which is not derived from
-or based on this library. If you modify this library, you may extend
-this exception to your version of the library, but 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.io.BufferedReader;
-import java.io.BufferedWriter;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.OutputStream;
-import java.io.OutputStreamWriter;
-import java.net.MalformedURLException;
-import java.nio.charset.Charset;
-import java.util.HashMap;
-
-
-/**
- * PluginAppletViewer communicates through pipes with a web browser
- * plugin. A PluginAppletViewer manages applet windows that may be
- * embedded into web pages.
- */
-class PluginAppletViewer
-{
- // A mapping of instance IDs to PluginAppletWindows.
- static HashMap appletWindows = new HashMap ();
-
- private static BufferedReader pluginInputStream;
- private static BufferedWriter pluginOutputStream;
-
- static void start(InputStream inputStream, OutputStream outputStream)
- throws MalformedURLException, IOException
- {
- // Set up input and output pipes. Use UTF-8 encoding.
- pluginInputStream =
- new BufferedReader(new InputStreamReader(inputStream,
- Charset.forName("UTF-8")));
- pluginOutputStream =
- new BufferedWriter(new OutputStreamWriter(outputStream,
- Charset.forName("UTF-8")));
-
- write("running");
-
- // Read first message.
- String message = read();
-
- PluginAppletWindow currentWindow = null;
-
- while (true)
- {
- if (message.startsWith("instance"))
- {
- // Read applet instance identifier.
- String key = message.substring(9);
-
- if (appletWindows.get(key) == null)
- appletWindows.put(key, new PluginAppletWindow());
-
- currentWindow = (PluginAppletWindow) appletWindows.get(key);
- }
- else if (message.startsWith("tag"))
- {
- int pos = message.indexOf(' ', 4);
- String documentbase = message.substring(4, pos);
- String tag = message.substring(pos + 1);
- currentWindow.setParser(tag, documentbase);
- }
- else if (message.startsWith("handle"))
- {
- long handle = Long.parseLong(message.substring(7));
-
- currentWindow.setHandle(handle);
- }
- else if (message.startsWith("width"))
- {
- int width = Integer.parseInt(message.substring(6));
-
- currentWindow.setSize(width, currentWindow.getHeight());
- }
- else if (message.startsWith("height"))
- {
- int height = Integer.parseInt(message.substring(7));
-
- currentWindow.setSize(currentWindow.getWidth(), height);
- }
- else if (message.startsWith("destroy"))
- {
- appletWindows.remove(currentWindow);
- currentWindow.dispose();
- }
-
- // Read next message.
- message = read();
- }
- }
-
- /**
- * Write string to plugin.
- *
- * @param message the message to write
- *
- * @exception IOException if an error occurs
- */
- static void write(String message) throws IOException
- {
- pluginOutputStream.write(message, 0, message.length());
- pluginOutputStream.newLine();
- pluginOutputStream.flush();
-
- System.err.println
- (" " + Messages.getString("PluginAppletViewer.AppletViewerWrote")
- + message);
- }
-
- /**
- * Read string from plugin.
- *
- * @return the read string
- *
- * @exception IOException if an error occurs
- */
- static String read() throws IOException
- {
- String message = pluginInputStream.readLine();
-
- System.err.println
- (" " + Messages.getString("PluginAppletViewer.AppletViewerRead")
- + message);
-
- if (message == null || message.equals("shutdown"))
- {
- // Close input/output channels to plugin.
- pluginInputStream.close();
- pluginOutputStream.close();
-
- System.err.println
- (Messages.getString("PluginAppletViewer.AppletViewerExiting"));
-
- System.exit(0);
- }
-
- return message;
- }
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/appletviewer/PluginAppletWindow.java b/libjava/classpath/tools/gnu/classpath/tools/appletviewer/PluginAppletWindow.java
deleted file mode 100644
index bc44a73..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/appletviewer/PluginAppletWindow.java
+++ /dev/null
@@ -1,448 +0,0 @@
-/* PluginAppletWindow.java -- an embeddable applet window
- 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 gnu.java.awt.EmbeddedWindow;
-
-import java.applet.Applet;
-import java.applet.AppletContext;
-import java.awt.Dimension;
-import java.awt.event.ComponentEvent;
-import java.awt.event.ComponentListener;
-import java.awt.event.ContainerEvent;
-import java.awt.event.ContainerListener;
-import java.awt.event.HierarchyBoundsListener;
-import java.awt.event.HierarchyEvent;
-import java.awt.event.HierarchyListener;
-import java.awt.event.InputMethodEvent;
-import java.awt.event.InputMethodListener;
-import java.awt.event.MouseEvent;
-import java.awt.event.MouseListener;
-import java.awt.event.MouseMotionListener;
-import java.io.IOException;
-import java.io.StringReader;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.HashMap;
-
-
-class PluginAppletWindow
- extends EmbeddedWindow
- implements ContainerListener, ComponentListener, MouseListener,
- MouseMotionListener, InputMethodListener, HierarchyListener,
- HierarchyBoundsListener
-{
-
- // This class implements various listeners because the author of an applet
- // may attach listeners to it, unaware of the applet's parent (this class).
- // So, we must pass all listener events on this plugin applet window to the
- // actual applet.
-
- private static HashMap contexts = new HashMap();
- private Applet applet;
- private TagParser parser;
- private AppletTag tag;
-
- PluginAppletWindow()
- {
- super();
- addContainerListener(this);
- addComponentListener(this);
- addMouseListener(this);
- addMouseMotionListener(this);
- addInputMethodListener(this);
- addHierarchyListener(this);
- addHierarchyBoundsListener(this);
- }
-
- ///////////////////////////////////
- /// ContainerListener Methods /////
- ///////////////////////////////////
-
- /**
- * This method is called when a component is added to the container.
- *
- * @param event the ContainerEvent indicating component
- * addition
- */
- public void componentAdded(ContainerEvent event)
- {
- if (applet != null)
- {
- ContainerListener[] l = applet.getContainerListeners();
- for (int i = 0; i < l.length; i++)
- l[i].componentAdded(event);
- }
- }
-
- /**
- * This method is called when a component is removed from the container.
- *
- * @param event the ContainerEvent indicating component removal
- */
- public void componentRemoved(ContainerEvent event)
- {
- if (applet != null)
- {
- ContainerListener[] l = applet.getContainerListeners();
- for (int i = 0; i < l.length; i++)
- l[i].componentRemoved(event);
- }
- }
-
- ///////////////////////////////////
- /// ComponentListener Methods /////
- ///////////////////////////////////
-
- /**
- * This method is called when the component is resized.
- *
- * @param event the ComponentEvent indicating the resize
- */
- public void componentResized(ComponentEvent event)
- {
- if (applet != null)
- {
- ComponentListener[] l = applet.getComponentListeners();
- for (int i = 0; i < l.length; i++)
- l[i].componentResized(event);
- }
- }
-
- /**
- * This method is called when the component is moved.
- *
- * @param event the ComponentEvent indicating the move
- */
- public void componentMoved(ComponentEvent event)
- {
- if (applet != null)
- {
- ComponentListener[] l = applet.getComponentListeners();
- for (int i = 0; i < l.length; i++)
- l[i].componentMoved(event);
- }
- }
-
- /**
- * This method is called when the component is made visible.
- *
- * @param event the ComponentEvent indicating the visibility
- */
- public void componentShown(ComponentEvent event)
- {
- if (applet != null)
- {
- ComponentListener[] l = applet.getComponentListeners();
- for (int i = 0; i < l.length; i++)
- l[i].componentShown(event);
- }
- }
-
- /**
- * This method is called when the component is hidden.
- *
- * @param event the ComponentEvent indicating the visibility
- */
- public void componentHidden(ComponentEvent event)
- {
- if (applet != null)
- {
- ComponentListener[] l = applet.getComponentListeners();
- for (int i = 0; i < l.length; i++)
- l[i].componentHidden(event);
- }
- }
-
- ///////////////////////////////////
- ////// MouseListener Methods //////
- ///////////////////////////////////
-
- /**
- * This method is called when the mouse is clicked (pressed and released
- * in short succession) on a component.
- *
- * @param event the MouseEvent indicating the click
- */
- public void mouseClicked(MouseEvent event)
- {
- if (applet != null)
- {
- MouseListener[] l = applet.getMouseListeners();
- for (int i = 0; i < l.length; i++)
- l[i].mouseClicked(event);
- }
- }
-
- /**
- * This method is called when the mouse is pressed over a component.
- *
- * @param event the MouseEvent for the press
- */
- public void mousePressed(MouseEvent event)
- {
- if (applet != null)
- {
- MouseListener[] l = applet.getMouseListeners();
- for (int i = 0; i < l.length; i++)
- l[i].mousePressed(event);
- }
- }
-
- /**
- * This method is called when the mouse is released over a component.
- *
- * @param event the MouseEvent for the release
- */
- public void mouseReleased(MouseEvent event)
- {
- if (applet != null)
- {
- MouseListener[] l = applet.getMouseListeners();
- for (int i = 0; i < l.length; i++)
- l[i].mouseReleased(event);
- }
- }
-
- /**
- * This method is called when the mouse enters a component.
- *
- * @param event the MouseEvent for the entry
- */
- public void mouseEntered(MouseEvent event)
- {
- if (applet != null)
- {
- MouseListener[] l = applet.getMouseListeners();
- for (int i = 0; i < l.length; i++)
- l[i].mouseEntered(event);
- }
- }
-
- /**
- * This method is called when the mouse exits a component.
- *
- * @param event the MouseEvent for the exit
- */
- public void mouseExited(MouseEvent event)
- {
- if (applet != null)
- {
- MouseListener[] l = applet.getMouseListeners();
- for (int i = 0; i < l.length; i++)
- l[i].mouseExited(event);
- }
- }
-
- ///////////////////////////////////
- /// MouseMotionListener Methods ///
- ///////////////////////////////////
-
- /**
- * This method is called when the mouse is moved over a component
- * while a button has been pressed.
- *
- * @param event the MouseEvent indicating the motion
- */
- public void mouseDragged(MouseEvent event)
- {
- if (applet != null)
- {
- MouseMotionListener[] l = applet.getMouseMotionListeners();
- for (int i = 0; i < l.length; i++)
- l[i].mouseDragged(event);
- }
- }
-
- /**
- * This method is called when the mouse is moved over a component
- * while no button is pressed.
- *
- * @param event the MouseEvent indicating the motion
- */
- public void mouseMoved(MouseEvent event)
- {
- if (applet != null)
- {
- MouseMotionListener[] l = applet.getMouseMotionListeners();
- for (int i = 0; i < l.length; i++)
- l[i].mouseMoved(event);
- }
- }
-
- ///////////////////////////////////
- /// InputMethodListener Methods ///
- ///////////////////////////////////
-
- /**
- * This method is called when the text is changed.
- *
- * @param event the InputMethodEvent indicating the text change
- */
- public void inputMethodTextChanged(InputMethodEvent event)
- {
- if (applet != null)
- {
- InputMethodListener[] l = applet.getInputMethodListeners();
- for (int i = 0; i < l.length; i++)
- l[i].inputMethodTextChanged(event);
- }
- }
-
- /**
- * This method is called when the cursor position within the text is changed.
- *
- * @param event the InputMethodEvent indicating the change
- */
- public void caretPositionChanged(InputMethodEvent event)
- {
- if (applet != null)
- {
- InputMethodListener[] l = applet.getInputMethodListeners();
- for (int i = 0; i < l.length; i++)
- l[i].caretPositionChanged(event);
- }
- }
-
- ///////////////////////////////////
- //// HierarchyListener Methods ////
- ///////////////////////////////////
-
- /**
- * Called when the hierarchy of this component changes. Use
- * getChangeFlags() on the event to see what exactly changed.
- *
- * @param event the event describing the change
- */
- public void hierarchyChanged(HierarchyEvent event)
- {
- if (applet != null)
- {
- HierarchyListener[] l = applet.getHierarchyListeners();
- for (int i = 0; i < l.length; i++)
- l[i].hierarchyChanged(event);
- }
- }
-
- /////////////////////////////////////////
- //// HierarchyBoundsListener Methods ////
- /////////////////////////////////////////
-
- /**
- * Called when an ancestor component of the source is moved.
- *
- * @param e the event describing the ancestor's motion
- */
- public void ancestorMoved(HierarchyEvent e)
- {
- if (applet != null)
- {
- HierarchyBoundsListener[] l = applet.getHierarchyBoundsListeners();
- for (int i = 0; i < l.length; i++)
- l[i].ancestorMoved(e);
- }
- }
-
- /**
- * Called when an ancestor component is resized.
- *
- * @param e the event describing the ancestor's resizing
- */
- public void ancestorResized(HierarchyEvent e)
- {
- if (applet != null)
- {
- HierarchyBoundsListener[] l = applet.getHierarchyBoundsListeners();
- for (int i = 0; i < l.length; i++)
- l[i].ancestorResized(e);
- }
- }
-
- void setParser(String tag, String documentbase) throws MalformedURLException, IOException
- {
- URL documentbaseURL = TagParser.getLocationToURL(documentbase);
- StringReader in = new StringReader(tag);
- this.parser = new TagParser(in, documentbaseURL);
- }
-
- // /////////////////////////////////
- // //// EmbeddedWindow Method //////
- // /////////////////////////////////
-
- /**
- * Set the native handle of the window system to embed the window in.
- *
- * @param handle the native handle.
- */
- public void setHandle(long handle)
- {
- super.setHandle(handle);
- addNotify();
-
- ArrayList l = parser.parseAppletTags();
- int s = l.size();
-
- for (int i = 0; i < s; i++)
- {
- tag = (AppletTag) l.get(i);
- applet = Main.createApplet(tag);
-
- if (contexts.get(tag.getCodeBase()) == null)
- contexts.put(tag.getCodeBase(), new PluginAppletContext());
-
- add(applet);
-
- AppletContext context = (AppletContext) contexts.get(tag.getCodeBase());
- ((PluginAppletContext) context).addApplet(applet);
-
- applet.setStub(new CommonAppletStub(tag, context, applet));
- Dimension size = getSize();
- if (size.width == 0 || size.height == 0)
- size = tag.getSize();
- applet.setSize(size);
-
- // Initialize the applet before showing this window so that
- // the applet doesn't receive events before it has been
- // initialized.
- applet.init();
- applet.start();
- setVisible(true);
- }
- }
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/appletviewer/StandaloneAppletContext.java b/libjava/classpath/tools/gnu/classpath/tools/appletviewer/StandaloneAppletContext.java
deleted file mode 100644
index 48468f8..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/appletviewer/StandaloneAppletContext.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/* StandaloneAppletContext.java -- an applet's context within the
- standalone viewer
- 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., 51 Franklin Street, Fifth Floor, Boston, MA
-02110-1301 USA.
-
-Linking this library statically or dynamically with other modules is
-making a combined work based on this library. Thus, the terms and
-conditions of the GNU General Public License cover the whole
-combination.
-
-As a special exception, the copyright holders of this library give you
-permission to link this library with independent modules to produce an
-executable, regardless of the license terms of these independent
-modules, and to copy and distribute the resulting executable under
-terms of your choice, provided that you also meet, for each linked
-independent module, the terms and conditions of the license of that
-module. An independent module is a module which is not derived from
-or based on this library. If you modify this library, you may extend
-this exception to your version of the library, but 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.net.URL;
-import java.util.Iterator;
-import java.util.List;
-
-
-/**
- * StandaloneAppletContext represents the context within a webpage of a
- * group of applets that all share the same codebase.
- */
-class StandaloneAppletContext extends CommonAppletContext
-{
- private List appletWindows;
-
- StandaloneAppletContext(List appletWindows)
- {
- this.appletWindows = appletWindows;
- }
-
- public void showDocument(URL url, String target)
- {
- System.err.println
- (Messages.getString("StandaloneAppletContext.ShowDocumentError"));
- }
-
- // In standalone mode, there are potentially several windows, each
- // with its own status bar. In plugin mode, all the applets in the
- // same context (on the same page) share the browser's status bar.
- // The best way to simulate the plugin mode behaviour in standalone
- // mode is to show the same status on each window's status bar.
- public void showStatus(String status)
- {
- Iterator window = appletWindows.iterator();
- while (window.hasNext())
- ((StandaloneAppletWindow) window.next()).showStatus(status);
- }
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/appletviewer/StandaloneAppletViewer.java b/libjava/classpath/tools/gnu/classpath/tools/appletviewer/StandaloneAppletViewer.java
deleted file mode 100644
index a59b03b..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/appletviewer/StandaloneAppletViewer.java
+++ /dev/null
@@ -1,148 +0,0 @@
-/* StandaloneAppletViewer.java -- a standalone viewer for Java applets
- 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., 51 Franklin Street, Fifth Floor, Boston, MA
-02110-1301 USA.
-
-Linking this library statically or dynamically with other modules is
-making a combined work based on this library. Thus, the terms and
-conditions of the GNU General Public License cover the whole
-combination.
-
-As a special exception, the copyright holders of this library give you
-permission to link this library with independent modules to produce an
-executable, regardless of the license terms of these independent
-modules, and to copy and distribute the resulting executable under
-terms of your choice, provided that you also meet, for each linked
-independent module, the terms and conditions of the license of that
-module. An independent module is a module which is not derived from
-or based on this library. If you modify this library, you may extend
-this exception to your version of the library, but 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.Dimension;
-import java.io.File;
-import java.io.IOException;
-import java.io.StringReader;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import java.util.StringTokenizer;
-
-
-/**
- * StandaloneAppletViewer displays an applet in its own Frame. Most
- * of the context that is available to an applet within a webpage is
- * available to it in StandaloneAppletViewer.
- */
-class StandaloneAppletViewer extends Main
-{
- static ArrayList appletTags = new ArrayList();
- static ArrayList appletWindows = new ArrayList();
-
- StandaloneAppletViewer(String[] urls)
- throws MalformedURLException, IOException
- {
- // Handle each file specified on the command line.
- for (int i = 0; i < urls.length; i++)
- {
- TagParser parser = new TagParser(urls[i]);
- appletTags.addAll(parser.parseAppletTags());
- }
-
- printTags();
- createWindows();
- }
-
- StandaloneAppletViewer(String code, String codebase, String archives,
- List parameters, Dimension dimensions)
- throws IOException
- {
- if (!(code.equals("") || code.endsWith(".class")))
- {
- System.err.println
- (Messages.getString("StandaloneAppletViewer.CodeOptionError"));
- System.exit(1);
- }
-
- String tagString =
- "";
-
- StringReader reader = new StringReader(tagString);
- String path = System.getProperty("user.dir") + File.separator;
- TagParser parser = new TagParser(reader,
- new URL("file", "", path));
- appletTags.addAll(parser.parseAppletTags());
-
- printTags();
- createWindows();
- }
-
- void printTags()
- {
- if (verbose)
- {
- System.out.println
- (Messages.getString("StandaloneAppletViewer.ParsedAppletTags"));
-
- for (int i = 0; i < appletTags.size(); i++)
- {
- AppletTag tag = (AppletTag) appletTags.get(i);
-
- System.out.println
- (" " + Messages.getString("StandaloneAppletViewer.Tag")
- + " " + i + ":");
- System.out.println(tag);
- }
- }
- }
-
- void createWindows()
- {
- for (int i = 0; i < appletTags.size(); i++)
- {
- AppletTag tag = (AppletTag) appletTags.get(i);
-
- // Create a StandaloneAppletWindow and add it to the
- // appletWindows list.
- new StandaloneAppletWindow(tag, appletWindows);
- }
- }
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/appletviewer/StandaloneAppletWindow.java b/libjava/classpath/tools/gnu/classpath/tools/appletviewer/StandaloneAppletWindow.java
deleted file mode 100644
index 64d3007..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/appletviewer/StandaloneAppletWindow.java
+++ /dev/null
@@ -1,560 +0,0 @@
-/* StandaloneAppletWindow.java -- an applet frame
- 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.applet.Applet;
-import java.applet.AppletContext;
-import java.awt.BorderLayout;
-import java.awt.Dimension;
-import java.awt.Frame;
-import java.awt.Insets;
-import java.awt.Label;
-import java.awt.Menu;
-import java.awt.MenuBar;
-import java.awt.MenuItem;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-import java.awt.event.ComponentEvent;
-import java.awt.event.ComponentListener;
-import java.awt.event.ContainerEvent;
-import java.awt.event.ContainerListener;
-import java.awt.event.HierarchyBoundsListener;
-import java.awt.event.HierarchyEvent;
-import java.awt.event.HierarchyListener;
-import java.awt.event.InputMethodEvent;
-import java.awt.event.InputMethodListener;
-import java.awt.event.MouseEvent;
-import java.awt.event.MouseListener;
-import java.awt.event.MouseMotionListener;
-import java.awt.event.WindowAdapter;
-import java.awt.event.WindowEvent;
-import java.util.HashMap;
-import java.util.List;
-
-class StandaloneAppletWindow
- extends Frame
- implements ActionListener, ContainerListener, ComponentListener,
- MouseListener, MouseMotionListener, InputMethodListener, HierarchyListener,
- HierarchyBoundsListener
-{
-
- // This class implements various listeners because the author of an applet
- // may attach listeners to it, unaware of the applet's parent (this class).
- // So, we must pass all listener events on this plugin applet window to the
- // actual applet.
-
- private static int testWindowCount;
- private static HashMap contexts = new HashMap();
- private Applet applet;
- private Label status = new Label();
-
- private MenuItem restartItem;
- private MenuItem reloadItem;
- private MenuItem cancelItem;
- private MenuItem saveItem;
- private MenuItem startItem;
- private MenuItem cloneItem;
- private MenuItem tagItem;
- private MenuItem infoItem;
- private MenuItem editItem;
- private MenuItem encodingItem;
- private MenuItem printItem;
- private MenuItem propertiesItem;
- private MenuItem closeItem;
- private MenuItem quitItem;
-
- StandaloneAppletWindow(AppletTag tag, List appletWindows)
- {
- appletWindows.add(this);
- applet = Main.createApplet(tag);
-
- if (contexts.get(tag.codebase) == null)
- contexts.put(tag.codebase, new StandaloneAppletContext(appletWindows));
-
- setLayout(new BorderLayout());
- add(applet, BorderLayout.CENTER);
- add(status, BorderLayout.SOUTH);
-
- addWindowListener(new WindowAdapter()
- {
- public void windowClosing(WindowEvent event)
- {
- applet.stop();
- StandaloneAppletWindow.this.hide();
- System.exit(0);
- }
- });
-
- addContainerListener(this);
- addComponentListener(this);
- addMouseListener(this);
- addMouseMotionListener(this);
- addInputMethodListener(this);
- addHierarchyListener(this);
- addHierarchyBoundsListener(this);
-
- restartItem = new MenuItem(Messages.getString("StandaloneAppletWindow.MenuRestart"));
- restartItem.setEnabled(false);
- restartItem.addActionListener(this);
- reloadItem = new MenuItem(Messages.getString("StandaloneAppletWindow.MenuReload"));
- reloadItem.setEnabled(false);
- reloadItem.addActionListener(this);
- cancelItem = new MenuItem(Messages.getString("StandaloneAppletWindow.MenuCancel"));
- cancelItem.setEnabled(false);
- cancelItem.addActionListener(this);
- saveItem = new MenuItem(Messages.getString("StandaloneAppletWindow.MenuSave"));
- saveItem.setEnabled(false);
- saveItem.addActionListener(this);
- startItem = new MenuItem(Messages.getString("StandaloneAppletWindow.MenuStart"));
- startItem.setEnabled(false);
- startItem.addActionListener(this);
- cloneItem = new MenuItem(Messages.getString("StandaloneAppletWindow.MenuClone"));
- cloneItem.setEnabled(false);
- cloneItem.addActionListener(this);
- closeItem = new MenuItem(Messages.getString("StandaloneAppletWindow.MenuClose"));
- closeItem.setEnabled(false);
- closeItem.addActionListener(this);
- tagItem =
- new MenuItem(Messages.getString("StandaloneAppletWindow.MenuTag"));
- tagItem.setEnabled(false);
- tagItem.addActionListener(this);
- infoItem =
- new MenuItem(Messages.getString("StandaloneAppletWindow.MenuInfo"));
- infoItem.setEnabled(false);
- infoItem.addActionListener(this);
- editItem =
- new MenuItem(Messages.getString("StandaloneAppletWindow.MenuEdit"));
- editItem.setEnabled(false);
- editItem.addActionListener(this);
- editItem.setEnabled(false);
- encodingItem =
- new MenuItem(Messages.getString("StandaloneAppletWindow.MenuEncoding"));
- encodingItem.setEnabled(false);
- encodingItem.addActionListener(this);
- printItem =
- new MenuItem(Messages.getString("StandaloneAppletWindow.MenuPrint"));
- printItem.setEnabled(false);
- printItem.addActionListener(this);
- propertiesItem =
- new MenuItem(Messages.getString("StandaloneAppletWindow.MenuProperties"));
- propertiesItem.setEnabled(false);
- propertiesItem.addActionListener(this);
- quitItem = new MenuItem(Messages.getString("StandaloneAppletWindow.MenuQuit"));
- quitItem.addActionListener(this);
-
- MenuBar menuBar = new MenuBar();
- Menu menuApplet = new Menu(Messages.getString("StandaloneAppletWindow.MenuTitle"));
- menuBar.add(menuApplet);
- menuApplet.add(restartItem);
- menuApplet.add(reloadItem);
- menuApplet.add(cancelItem);
- menuApplet.add(saveItem);
- menuApplet.add(startItem);
- menuApplet.add(cloneItem);
- menuApplet.addSeparator();
- menuApplet.add(tagItem);
- menuApplet.add(infoItem);
- menuApplet.add(editItem);
- menuApplet.add(encodingItem);
- menuApplet.addSeparator();
- menuApplet.add(printItem);
- menuApplet.addSeparator();
- menuApplet.add(propertiesItem);
- menuApplet.addSeparator();
- menuApplet.add(closeItem);
- menuApplet.add(quitItem);
- setMenuBar(menuBar);
- setTitle(Messages.getString("StandaloneAppletWindow.WindowTitle")
- + " " + tag.code);
-
- AppletContext context = (AppletContext) contexts.get(tag.codebase);
- ((StandaloneAppletContext) context).addApplet(applet);
-
- applet.setStub(new CommonAppletStub(tag, context, applet));
-
- // Create the frame's peer. Otherwise getPreferredSize will read
- // its insets as 0.
- addNotify();
- Insets i = getInsets();
- Dimension size = tag.getSize();
- setSize(i.left + size.width + i.right,
- i.top + size.height + status.getPreferredSize().height
- + i.bottom);
- applet.setSize(size);
-
- // Initialize the applet before showing this window so that the
- // applet doesn't receive events before it has been initialized.
- applet.init();
- applet.start();
- setVisible(true);
- }
-
- private void closeWindow()
- {
- applet.stop();
- StandaloneAppletViewer.appletWindows.remove(this);
- StandaloneAppletWindow.this.hide();
- }
-
- public void actionPerformed(ActionEvent e)
- {
- if (e.getSource() == quitItem)
- {
- closeWindow();
- System.exit(0);
- }
- else if (e.getSource() == closeItem)
- {
- // Close current window.
- closeWindow();
-
- // Exit if there are other windows left.
- if (StandaloneAppletViewer.appletWindows.isEmpty())
- System.exit(0);
- }
- }
-
- void showStatus(String status)
- {
- this.status.setText(status);
- }
-
-
- ///////////////////////////////////
- /// ContainerListener Methods /////
- ///////////////////////////////////
-
- /**
- * This method is called when a component is added to the container.
- *
- * @param event the ContainerEvent indicating component
- * addition
- */
- public void componentAdded(ContainerEvent event)
- {
- if (applet != null)
- {
- ContainerListener[] l = applet.getContainerListeners();
- for (int i = 0; i < l.length; i++)
- l[i].componentAdded(event);
- }
- }
-
- /**
- * This method is called when a component is removed from the container.
- *
- * @param event the ContainerEvent indicating component removal
- */
- public void componentRemoved(ContainerEvent event)
- {
- if (applet != null)
- {
- ContainerListener[] l = applet.getContainerListeners();
- for (int i = 0; i < l.length; i++)
- l[i].componentRemoved(event);
- }
- }
-
- ///////////////////////////////////
- /// ComponentListener Methods /////
- ///////////////////////////////////
-
- /**
- * This method is called when the component is resized.
- *
- * @param event the ComponentEvent indicating the resize
- */
- public void componentResized(ComponentEvent event)
- {
- if (applet != null)
- {
- ComponentListener[] l = applet.getComponentListeners();
- for (int i = 0; i < l.length; i++)
- l[i].componentResized(event);
- }
- }
-
- /**
- * This method is called when the component is moved.
- *
- * @param event the ComponentEvent indicating the move
- */
- public void componentMoved(ComponentEvent event)
- {
- if (applet != null)
- {
- ComponentListener[] l = applet.getComponentListeners();
- for (int i = 0; i < l.length; i++)
- l[i].componentMoved(event);
- }
- }
-
- /**
- * This method is called when the component is made visible.
- *
- * @param event the ComponentEvent indicating the visibility
- */
- public void componentShown(ComponentEvent event)
- {
- if (applet != null)
- {
- ComponentListener[] l = applet.getComponentListeners();
- for (int i = 0; i < l.length; i++)
- l[i].componentShown(event);
- }
- }
-
- /**
- * This method is called when the component is hidden.
- *
- * @param event the ComponentEvent indicating the visibility
- */
- public void componentHidden(ComponentEvent event)
- {
- if (applet != null)
- {
- ComponentListener[] l = applet.getComponentListeners();
- for (int i = 0; i < l.length; i++)
- l[i].componentHidden(event);
- }
- }
-
- ///////////////////////////////////
- ////// MouseListener Methods //////
- ///////////////////////////////////
-
- /**
- * This method is called when the mouse is clicked (pressed and released
- * in short succession) on a component.
- *
- * @param event the MouseEvent indicating the click
- */
- public void mouseClicked(MouseEvent event)
- {
- if (applet != null)
- {
- MouseListener[] l = applet.getMouseListeners();
- for (int i = 0; i < l.length; i++)
- l[i].mouseClicked(event);
- }
- }
-
- /**
- * This method is called when the mouse is pressed over a component.
- *
- * @param event the MouseEvent for the press
- */
- public void mousePressed(MouseEvent event)
- {
- if (applet != null)
- {
- MouseListener[] l = applet.getMouseListeners();
- for (int i = 0; i < l.length; i++)
- l[i].mousePressed(event);
- }
- }
-
- /**
- * This method is called when the mouse is released over a component.
- *
- * @param event the MouseEvent for the release
- */
- public void mouseReleased(MouseEvent event)
- {
- if (applet != null)
- {
- MouseListener[] l = applet.getMouseListeners();
- for (int i = 0; i < l.length; i++)
- l[i].mouseReleased(event);
- }
- }
-
- /**
- * This method is called when the mouse enters a component.
- *
- * @param event the MouseEvent for the entry
- */
- public void mouseEntered(MouseEvent event)
- {
- if (applet != null)
- {
- MouseListener[] l = applet.getMouseListeners();
- for (int i = 0; i < l.length; i++)
- l[i].mouseEntered(event);
- }
- }
-
- /**
- * This method is called when the mouse exits a component.
- *
- * @param event the MouseEvent for the exit
- */
- public void mouseExited(MouseEvent event)
- {
- if (applet != null)
- {
- MouseListener[] l = applet.getMouseListeners();
- for (int i = 0; i < l.length; i++)
- l[i].mouseExited(event);
- }
- }
-
- ///////////////////////////////////
- /// MouseMotionListener Methods ///
- ///////////////////////////////////
-
- /**
- * This method is called when the mouse is moved over a component
- * while a button has been pressed.
- *
- * @param event the MouseEvent indicating the motion
- */
- public void mouseDragged(MouseEvent event)
- {
- if (applet != null)
- {
- MouseMotionListener[] l = applet.getMouseMotionListeners();
- for (int i = 0; i < l.length; i++)
- l[i].mouseDragged(event);
- }
- }
-
- /**
- * This method is called when the mouse is moved over a component
- * while no button is pressed.
- *
- * @param event the MouseEvent indicating the motion
- */
- public void mouseMoved(MouseEvent event)
- {
- if (applet != null)
- {
- MouseMotionListener[] l = applet.getMouseMotionListeners();
- for (int i = 0; i < l.length; i++)
- l[i].mouseMoved(event);
- }
- }
-
- ///////////////////////////////////
- /// InputMethodListener Methods ///
- ///////////////////////////////////
-
- /**
- * This method is called when the text is changed.
- *
- * @param event the InputMethodEvent indicating the text change
- */
- public void inputMethodTextChanged(InputMethodEvent event)
- {
- if (applet != null)
- {
- InputMethodListener[] l = applet.getInputMethodListeners();
- for (int i = 0; i < l.length; i++)
- l[i].inputMethodTextChanged(event);
- }
- }
-
- /**
- * This method is called when the cursor position within the text is changed.
- *
- * @param event the InputMethodEvent indicating the change
- */
- public void caretPositionChanged(InputMethodEvent event)
- {
- if (applet != null)
- {
- InputMethodListener[] l = applet.getInputMethodListeners();
- for (int i = 0; i < l.length; i++)
- l[i].caretPositionChanged(event);
- }
- }
-
- ///////////////////////////////////
- //// HierarchyListener Methods ////
- ///////////////////////////////////
-
- /**
- * Called when the hierarchy of this component changes. Use
- * getChangeFlags() on the event to see what exactly changed.
- *
- * @param event the event describing the change
- */
- public void hierarchyChanged(HierarchyEvent event)
- {
- if (applet != null)
- {
- HierarchyListener[] l = applet.getHierarchyListeners();
- for (int i = 0; i < l.length; i++)
- l[i].hierarchyChanged(event);
- }
- }
-
- /////////////////////////////////////////
- //// HierarchyBoundsListener Methods ////
- /////////////////////////////////////////
-
- /**
- * Called when an ancestor component of the source is moved.
- *
- * @param e the event describing the ancestor's motion
- */
- public void ancestorMoved(HierarchyEvent e)
- {
- if (applet != null)
- {
- HierarchyBoundsListener[] l = applet.getHierarchyBoundsListeners();
- for (int i = 0; i < l.length; i++)
- l[i].ancestorMoved(e);
- }
- }
-
- /**
- * Called when an ancestor component is resized.
- *
- * @param e the event describing the ancestor's resizing
- */
- public void ancestorResized(HierarchyEvent e)
- {
- if (applet != null)
- {
- HierarchyBoundsListener[] l = applet.getHierarchyBoundsListeners();
- for (int i = 0; i < l.length; i++)
- l[i].ancestorResized(e);
- }
- }
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/appletviewer/TagParser.java b/libjava/classpath/tools/gnu/classpath/tools/appletviewer/TagParser.java
deleted file mode 100644
index 711b26e..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/appletviewer/TagParser.java
+++ /dev/null
@@ -1,356 +0,0 @@
-/* TagParser.java -- a parser for applet 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 gnu.classpath.tools.appletviewer;
-
-import gnu.javax.swing.text.html.parser.HTML_401F;
-
-import gnu.xml.dom.DomNode;
-import gnu.xml.dom.html2.DomHTMLAppletElement;
-import gnu.xml.dom.html2.DomHTMLDocument;
-import gnu.xml.dom.html2.DomHTMLEmbedElement;
-import gnu.xml.dom.html2.DomHTMLObjectElement;
-import gnu.xml.dom.html2.DomHTMLParamElement;
-import gnu.xml.dom.html2.DomHTMLParser;
-
-import java.io.File;
-import java.io.InputStreamReader;
-import java.io.IOException;
-import java.io.Reader;
-
-import java.net.MalformedURLException;
-import java.net.URL;
-
-import java.util.ArrayList;
-import java.util.StringTokenizer;
-import java.util.Vector;
-
-import org.w3c.dom.NodeList;
-
-
-public class TagParser
-{
-
- /**
- * Parsed document.
- */
- DomHTMLDocument document;
-
- /**
- * The document base of this applet.
- */
- URL documentbase;
-
- /**
- * The document base of all the applets.
- */
- static URL db;
-
- /**
- * The tags in the document.
- */
- Vector tags = new Vector();
-
- /**
- * Default constructor.
- */
- TagParser()
- {
- // Do nothing.
- }
-
- /**
- * Constructs and parses document using the given location.
- *
- * @param location - location of applet
- */
- TagParser(String location) throws IOException
- {
- documentbase = getLocationToURL(location);
- db = documentbase;
- InputStreamReader in = new InputStreamReader(documentbase.openStream());
- document = (DomHTMLDocument) (new DomHTMLParser(HTML_401F.getInstance()).parseDocument(in));
- }
-
- /**
- * Constructs and parses document.
- *
- * @param in - Reader to parse document from.
- * @param documentBase - the URL of the applet
- * @throws IOException - is thrown if any IO error occurs.
- */
- TagParser(Reader in, URL documentBase) throws IOException
- {
- documentbase = documentBase;
- db = documentbase;
- document = (DomHTMLDocument) (new DomHTMLParser(HTML_401F.getInstance()).parseDocument(in));
- }
-
- /**
- * Parses all applet tags in document.
- *
- * @return a list of AppletTag objects representing the applet tags
- * in document
- */
- ArrayList parseAppletTags()
- {
- ArrayList allTags = new ArrayList();
- if (document == null)
- return null;
-
- recurseDocument(document.getChildNodes());
-
- int sz = tags.size();
- for (int j = 0; j < sz; j++)
- {
- Object curr = tags.get(j);
- // Order of checking is important here.
- // Must check embed element before applet element
- // because DomHTMLEmbedElement extends DomHTMLAppletElement
- AppletTag a = null;
- if (curr instanceof DomHTMLEmbedElement)
- a = new AppletTag((DomHTMLEmbedElement) curr);
- else if (curr instanceof DomHTMLAppletElement)
- a = new AppletTag((DomHTMLAppletElement) curr);
- else if (curr instanceof DomHTMLObjectElement)
- a = new AppletTag((DomHTMLObjectElement) curr);
- a.documentbase = documentbase;
- allTags.add(a);
- }
-
- return allTags;
- }
-
- /**
- * Recurses the document in search for the appropriate tags.
- *
- * @param list - the Node list.
- */
- private void recurseDocument(NodeList list)
- {
- // Recurse and store all APPLET, OBJECT and EMBED tags.
- int length = list.getLength();
- for (int i = 0; i < length; i++)
- {
- DomNode curr = (DomNode) list.item(i);
- if ((curr instanceof DomHTMLEmbedElement) ||
- (curr instanceof DomHTMLAppletElement) ||
- (curr instanceof DomHTMLObjectElement))
- tags.add(curr);
- recurseDocument(curr.getChildNodes());
- }
- }
-
- /**
- * Parses the param elements for a given node.
- *
- * @param node - the node element to parse.
- */
- static void parseParams(DomNode node, AppletTag t)
- {
- boolean ja = false;
- boolean jb = false;
- boolean jc = false;
- NodeList l = node.getChildNodes();
- int size = l.getLength();
-
- if (size != 0)
- for (int i = 0; i < size; i++)
- {
- Object c = l.item(i);
- if (! (c instanceof DomHTMLParamElement))
- continue;
- DomHTMLParamElement curr = (DomHTMLParamElement) c;
- String key = curr.getName();
- String val = curr.getValue();
-
- if (key.equals("java_code"))
- {
- jc = true;
- t.code = val;
- }
- else if (key.equals("java_codebase"))
- {
- jb = true;
- t.codebase = val;
- }
- else if (!jc && key.equals("code"))
- t.code = val;
- else if (!jc && key.equals("classid"))
- {
- int x = val.indexOf(":");
- if (x != -1)
- val = val.substring(x + 1);
- t.code = val;
- }
- else if (!jb && key.equals("codebase"))
- t.codebase = val;
- else if (key.equals("java_archive"))
- {
- ja = true;
- t.archives = parseArchives(val, t);
- val = t.archives.toString();
- }
- else if (!ja && key.equals("archive"))
- {
- t.archives = parseArchives(val, t);
- val = t.archives.toString();
- }
- val = unescapeString(val);
- t.parameters.put(key.toLowerCase(), val);
- }
- }
-
- /**
- * This method does the same thing as the g_strcompress function in glib.
- *
- * @param value
- * @return value in its original one-byte equivalence.
- */
- private static String unescapeString(String value)
- {
- String unescVal = "";
- for (int i = 0; i < value.length(); i++)
- {
- if (i == value.length() - 1)
- {
- unescVal = unescVal.concat(value.substring(i));
- break;
- }
- if (value.charAt(i) == '\\')
- {
- switch (value.charAt(i + 1))
- {
- case 'b':
- unescVal = unescVal.concat("\b");
- break;
- case 'f':
- unescVal = unescVal.concat("\f");
- break;
- case 'n':
- unescVal = unescVal.concat("\n");
- break;
- case 'r':
- unescVal = unescVal.concat("\r");
- break;
- case 't':
- unescVal = unescVal.concat("\t");
- break;
- case '\\':
- unescVal = unescVal.concat("\\");
- break;
- case '\"':
- unescVal = unescVal.concat("\"");
- break;
- default:
- unescVal = unescVal.concat("\\");
- unescVal = unescVal.concat(value.substring(i + 1, i + 2));
- break;
- }
- i++;
- }
- else
- unescVal = unescVal.concat(value.substring(i, i + 1));
- }
- return unescVal;
- }
-
- /**
- * Parses the archive string and returns a list.
- *
- * @param arcs the list of archives (comma-separated) in a String.
- */
- static ArrayList parseArchives(String arcs, AppletTag t)
- {
- try
- {
- ArrayList list = new ArrayList();
-
- StringTokenizer tagTokenizer = new StringTokenizer(arcs, ",");
- while (tagTokenizer.hasMoreTokens())
- list.add(t.prependCodeBase(tagTokenizer.nextToken().trim()));
-
- return list;
- }
- catch (MalformedURLException e)
- {
- }
- return null;
- }
-
- /**
- * Gets the location to the URL, given a location.
- *
- * @param location - the given location.
- * @return the URL.
- */
- static URL getLocationToURL(String location) throws IOException
- {
- URL tmpDocumentBase = null;
-
- try
- {
- // Try parsing location as a URL.
- tmpDocumentBase = new URL(location);
-
- // If no file was specified in the URL the assume the user
- // meant the root page.
- String f = tmpDocumentBase.getFile();
- if (f.indexOf(".") == -1 && !f.endsWith(File.separator))
- if (new File(tmpDocumentBase.getFile()).isDirectory())
- tmpDocumentBase = new URL(location.concat(File.separator));
- }
- catch (MalformedURLException e)
- {
- // location is not a URL. See if it is an HTML file.
- String path;
-
- if (location.startsWith(File.separator))
- path = new File(location).getCanonicalPath();
- else
- path = new File(System.getProperty("user.dir") + File.separator
- + location).getCanonicalPath();
-
- tmpDocumentBase = new URL("file", "", path);
-
- if (new File(tmpDocumentBase.getFile()).isDirectory())
- tmpDocumentBase = new URL("file", "", path + File.separator);
- }
-
- return tmpDocumentBase;
- }
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/common/CallbackUtil.java b/libjava/classpath/tools/gnu/classpath/tools/common/CallbackUtil.java
deleted file mode 100644
index 838d740..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/common/CallbackUtil.java
+++ /dev/null
@@ -1,145 +0,0 @@
-/* CallbackUtil.java -- Callback related 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.classpath.tools.common;
-
-import gnu.javax.security.auth.callback.ConsoleCallbackHandler;
-
-import java.security.Provider;
-import java.security.Security;
-import java.util.logging.Logger;
-
-import javax.security.auth.callback.CallbackHandler;
-
-/**
- * A Helper class containing general purpose utlity methods dealing with
- * callback handlers and their Security Provider.
- */
-public abstract class CallbackUtil
-{
- private static final Logger log = Logger.getLogger(CallbackUtil.class.getName());
-
- // default 0-arguments constructor
-
- // Class methods
- // --------------------------------------------------------------------------
-
- /**
- * Return an implementation of the {@link CallbackHandler}, from any
- * {@link Provider}, capable of handling callbacks through the console;
- * i.e. System.in and System.out.
- *
- * If no Security Provider for this type of callback was found, this
- * method returns the default GNU implementation.
- *
- * @return a console {@link CallbackHandler} implementation.
- */
- public static final CallbackHandler getConsoleHandler()
- {
- CallbackHandler result = getHandler("Console");
- if (result == null)
- {
- log.fine("No console callback handler found. Will use ours");
- result = new ConsoleCallbackHandler();
- }
- return result;
- }
-
- /**
- * Return a {@link CallbackHandler}, of a designated type, for interacting
- * with the user.
- *
- * This method first finds all currently installed Security Providers
- * capable of providing such service and then in turn attempts to instantiate
- * the handler from those providers. As soon as one provider returns a non-
- * null instance of the callback handler, the search stops and that instance
- * is returned.
- *
- * @return a {@link CallbackHandler} of the designated type, or
- * null if no provider was found for theis type of
- * callback.
- */
- private static final CallbackHandler getHandler(String handlerType)
- {
- log.entering(CallbackUtil.class.getName(), "getHandler", handlerType);
-
- CallbackHandler result = null;
- String service = "CallbackHandler." + handlerType;
- Provider[] providers = Security.getProviders(service);
- if (providers != null)
- for (int i = 0; i < providers.length; i++)
- {
- Provider p = providers[i];
- String className = p.getProperty(service);
- if (className != null)
- try
- {
- result = (CallbackHandler) Class.forName(className.trim()).newInstance();
- }
- catch (InstantiationException x)
- {
- log.fine("InstantiationException while creating ["
- + className + "] from provider [" + p.getName()
- + "]. Ignore");
- }
- catch (IllegalAccessException x)
- {
- log.fine("IllegalAccessException while creating ["
- + className + "] from provider [" + p.getName()
- + "]. Ignore");
- }
- catch (ClassNotFoundException x)
- {
- log.fine("ClassNotFoundException while creating ["
- + className + "] from provider [" + p.getName()
- + "]. Ignore");
- }
-
- if (result != null)
- {
-
- log.fine("Will use [" + result.getClass().getName()
- + "] from [" + p.getName() + "]");
- break;
- }
- }
-
- log.exiting(CallbackUtil.class.getName(), "getHandler", result);
- return result;
- }
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/common/ClasspathToolParser.java b/libjava/classpath/tools/gnu/classpath/tools/common/ClasspathToolParser.java
deleted file mode 100644
index d740646..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/common/ClasspathToolParser.java
+++ /dev/null
@@ -1,239 +0,0 @@
-/* ClasspathToolParser.java -- Parser subclass for classpath tools
- Copyright (C) 2006 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-02110-1301 USA.
-
-Linking this library statically or dynamically with other modules is
-making a combined work based on this library. Thus, the terms and
-conditions of the GNU General Public License cover the whole
-combination.
-
-As a special exception, the copyright holders of this library give you
-permission to link this library with independent modules to produce an
-executable, regardless of the license terms of these independent
-modules, and to copy and distribute the resulting executable under
-terms of your choice, provided that you also meet, for each linked
-independent module, the terms and conditions of the license of that
-module. An independent module is a module which is not derived from
-or based on this library. If you modify this library, you may extend
-this exception to your version of the library, but you are not
-obligated to do so. If you do not wish to do so, delete this
-exception statement from your version. */
-
-
-package gnu.classpath.tools.common;
-
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.FileNotFoundException;
-import java.io.FileReader;
-import java.io.Reader;
-import java.text.MessageFormat;
-import java.util.ArrayList;
-
-import gnu.classpath.Configuration;
-import gnu.classpath.tools.getopt.FileArgumentCallback;
-import gnu.classpath.tools.getopt.Option;
-import gnu.classpath.tools.getopt.OptionException;
-import gnu.classpath.tools.getopt.Parser;
-
-/**
- * This is like the Parser class, but is specialized for use by
- * tools distributed with GNU Classpath. In particular it automatically
- * computes the version string using the program's name.
- */
-public class ClasspathToolParser
- extends Parser
-{
- private static String getVersionString(String programName)
- {
- String fmt = (Messages.getString("ClasspathToolParser.VersionFormat")); //$NON-NLS-1$
- return MessageFormat.format(fmt,
- new Object[]
- {
- programName,
- Configuration.CLASSPATH_VERSION
- });
- }
-
- public ClasspathToolParser(String programName)
- {
- this(programName, false);
- }
-
- public ClasspathToolParser(String programName, boolean longOnly)
- {
- super(programName, getVersionString(programName), longOnly);
- addFinal(new Option('J',
- Messages.getString("ClasspathToolParser.JArgument"),//$NON-NLS-1$
- Messages.getString("ClasspathToolParser.JName"), //$NON-NLS-1$
- true)
- {
- public void parsed(String argument) throws OptionException
- {
- // -J should be handled by the wrapper binary.
- // We add it here so that it shows up in the --help output.
- }
- });
- }
-
- public void parse(String[] inArgs, FileArgumentCallback files,
- boolean handleFileLists)
- {
- FileArgumentCallback cb;
-
- if (handleFileLists)
- cb = new AtFileArgumentCallback(files);
- else
- cb = files;
-
- parse(inArgs, cb);
- }
-
- public String[] parse(String[] inArgs, boolean handleFileLists)
- {
- final ArrayList fileResult = new ArrayList();
-
- final FileArgumentCallback cb = new FileArgumentCallback()
- {
- public void notifyFile(String fileArgument)
- {
- fileResult.add(fileArgument);
- }
- };
-
- if (handleFileLists)
- parse(inArgs, new AtFileArgumentCallback(cb));
- else
- parse(inArgs, cb);
-
- return fileResult.toArray(new String[fileResult.size()]);
- }
-
-
- /**
- * Simple function that takes the given {@link Reader}, treats it like
- * a textfile and reads all the whitespace separated entries from it
- * and adds them to the @{link FileArgumentCallback} instance.
- *
- * @param reader the reader to read from.
- * @param cb the callback to post the filenames to.
- * @throws OptionException if an error occurs reading the list.
- */
- public void parseFileList(Reader reader, FileArgumentCallback cb)
- throws OptionException
- {
- BufferedReader breader = new BufferedReader(reader);
- String line = null;
-
- try
- {
- while ((line = breader.readLine()) != null)
- parseLine(line, cb);
-
- reader.close();
- }
- catch (IOException ioe)
- {
- throw new OptionException("I/O error while reading a file list", ioe);
- }
-
- }
-
- /**
- * Parses whitespace separated file entries.
- *
- * Note: This is not coping with whitespace in files or quoting.
- *
- * @param line the line of the file to parse.
- * @param cb the callback to pass the parsed file to.
- * @throws IOException if an I/O error occurs.
- * @throws OptionException if an error occurs in the callback.
- */
- private void parseLine(String line, FileArgumentCallback cb)
- throws IOException, OptionException
- {
- final int length = line.length();
- int start = 0;
- int end = 0;
-
- // While not reached end of line ...
- while (start < length)
- {
- // Search for first non-whitespace character for the start of a word.
- while (Character.isWhitespace(line.codePointAt(start)))
- {
- start++;
-
- if (start == length)
- return;
- }
-
- end = start + 1;
-
- // Search for first whitespace character for the end of a word.
- while (end < length && !Character.isWhitespace(line.codePointAt(end)))
- end++;
-
- cb.notifyFile(line.substring(start, end));
-
- start = end + 1;
- }
- }
-
- /**
- * Implementation of {@link FileArgumentCallback} that handles
- * file arguments in {@link #notifyFile} starting with a @
- * through {@link ClasspathToolParser#parseFileList}.
- */
- class AtFileArgumentCallback extends FileArgumentCallback
- {
- FileArgumentCallback cb;
-
- AtFileArgumentCallback(FileArgumentCallback cb)
- {
- this.cb = cb;
- }
-
- @Override
- public void notifyFile(String fileArgument)
- throws OptionException
- {
- if (fileArgument.codePointAt(0) == '@')
- {
- FileReader fr = null;
-
- try
- {
- fr = new FileReader(fileArgument.substring(1));
- }
- catch (FileNotFoundException fnfe)
- {
- throw new OptionException("File not found: " + fileArgument.substring(1),
- fnfe);
- }
-
- ClasspathToolParser.this.parseFileList(fr, cb);
- }
- else
- cb.notifyFile(fileArgument);
- }
-
- }
-
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/common/Messages.java b/libjava/classpath/tools/gnu/classpath/tools/common/Messages.java
deleted file mode 100644
index 4f6d687..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/common/Messages.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/* Messages.java -- i18n support for tools common code
- Copyright (C) 2006, 2010 Free Software Foundation, Inc.
-
- This file is part of GNU Classpath.
-
- GNU Classpath is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2, or (at your option)
- any later version.
-
- GNU Classpath is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with GNU Classpath; see the file COPYING. If not, write to the
- Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
- 02110-1301 USA.
-
- Linking this library statically or dynamically with other modules is
- making a combined work based on this library. Thus, the terms and
- conditions of the GNU General Public License cover the whole
- combination.
-
- As a special exception, the copyright holders of this library give you
- permission to link this library with independent modules to produce an
- executable, regardless of the license terms of these independent
- modules, and to copy and distribute the resulting executable under
- terms of your choice, provided that you also meet, for each linked
- independent module, the terms and conditions of the license of that
- module. An independent module is a module which is not derived from
- or based on this library. If you modify this library, you may extend
- this exception to your version of the library, but you are not
- obligated to do so. If you do not wish to do so, delete this
- exception statement from your version. */
-
-
-package gnu.classpath.tools.common;
-
-import java.util.MissingResourceException;
-import java.util.ResourceBundle;
-
-class Messages
-{
- private static final String BUNDLE_NAME
- = "gnu.classpath.tools.common.messages"; //$NON-NLS-1$
-
- private static final ResourceBundle RESOURCE_BUNDLE
- = ResourceBundle.getBundle(BUNDLE_NAME);
-
- private Messages()
- {
- }
-
- public static String getString(String key)
- {
- try
- {
- return RESOURCE_BUNDLE.getString(key);
- }
- catch (MissingResourceException e)
- {
- return '!' + key + '!';
- }
- }
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/common/Persistent.java b/libjava/classpath/tools/gnu/classpath/tools/common/Persistent.java
deleted file mode 100644
index 5c85c90..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/common/Persistent.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/* PersistentBidiHasthable.java -- Constants for the persistent tables.
- Copyright (C) 2006 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-02110-1301 USA.
-
-Linking this library statically or dynamically with other modules is
-making a combined work based on this library. Thus, the terms and
-conditions of the GNU General Public License cover the whole
-combination.
-
-As a special exception, the copyright holders of this library give you
-permission to link this library with independent modules to produce an
-executable, regardless of the license terms of these independent
-modules, and to copy and distribute the resulting executable under
-terms of your choice, provided that you also meet, for each linked
-independent module, the terms and conditions of the license of that
-module. An independent module is a module which is not derived from
-or based on this library. If you modify this library, you may extend
-this exception to your version of the library, but you are not
-obligated to do so. If you do not wish to do so, delete this
-exception statement from your version. */
-
-package gnu.classpath.tools.common;
-
-import java.util.Timer;
-import java.util.TimerTask;
-
-/**
- * The static fields, shared by the multiple classes, implementing the
- * persistent work.
- *
- * @author Audrius Meskauskas (audriusa@bioinformatics.org)
- */
-public interface Persistent
-{
- /**
- * Sheduled termination task.
- */
- static class ExitTask extends TimerTask
- {
- public void run()
- {
- System.exit(0);
- }
- }
-
- /**
- * The timer, sheduling all disk database update events, shared by all
- * instances.
- */
- static Timer timer = new Timer(true);
-
- /**
- * The longest time, in ms, after that the database content on the disk must
- * be updated. The algorithm is written to avoid the very frequent writings to
- * the disk.
- */
- static long SAVE_AT_MOST_AFTER = 5000;
-
- /**
- * States how long the database may stay not updated during the intensive
- * operations, in ms. Otherwise the intensively used structure may never
- * be stored to the disk.
- */
- static long ALWAYS_UPDATE = 300000;
-
- /**
- * Write the database content to the disk.
- */
- void writeContent();
-
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/common/ProviderUtil.java b/libjava/classpath/tools/gnu/classpath/tools/common/ProviderUtil.java
deleted file mode 100644
index bc6d931..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/common/ProviderUtil.java
+++ /dev/null
@@ -1,163 +0,0 @@
-/* ProviderUtil.java -- Security Provider related 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.classpath.tools.common;
-
-import java.security.AccessController;
-import java.security.PrivilegedAction;
-import java.security.Provider;
-import java.security.Security;
-import java.util.logging.Logger;
-
-/**
- * A Helper class containing general purpose utlity methods dealing with
- * installing and removing Security Providers at runtime.
- */
-public abstract class ProviderUtil
-{
- private static final Logger log = Logger.getLogger(ProviderUtil.class.getName());
-
- // default 0-arguments constructor
-
- // Class methods
- // --------------------------------------------------------------------------
-
- /**
- * Attempt to (a) instantiate, and (b) add a designated {@link Provider} by
- * inserting at at the top of the list of Security Providers already
- * present at runtime, only if it is not already installed.
- *
- * IMPORTANT: This method overrides the security check usually carried
- * out by the security manager when inserting a new {@link Provider}.
- *
- * @param providerClass a fully qualified, non-null, class name of a
- * Security Provider to add if it is not already installed.
- * @return an instance of {@link SecurityProviderInfo} referencing the
- * {@link Provider} instance created with the designated class name,
- * and its position in the underlying JVM runtime.
- */
- public static final SecurityProviderInfo addProvider(String providerClass)
- {
- log.entering(ProviderUtil.class.getName(), "addProvider", providerClass);
-
- Provider provider = null;
- try
- {
- provider = (Provider) Class.forName(providerClass.trim()).newInstance();
- }
- catch (InstantiationException x)
- {
- log.fine("InstantiationException while creating [" + providerClass
- + "]. Ignore");
- }
- catch (IllegalAccessException x)
- {
- log.fine("IllegalAccessException while creating [" + providerClass
- + "]. Ignore");
- }
- catch (ClassNotFoundException x)
- {
- log.fine("ClassNotFoundException while creating [" + providerClass
- + "]. Ignore");
- }
-
- int position = provider != null ? addProvider(provider) : -1;
- SecurityProviderInfo result = new SecurityProviderInfo(provider, position);
-
- log.exiting(ProviderUtil.class.getName(), "addProvider", result);
- return result;
- }
-
- /**
- * Attempt to add the designated {@link Provider} by inserting at at the top
- * of the list of Security Providers already present at runtime, only
- * if it is not already installed.
- *
- * IMPORTANT: This method overrides the security check usually carried
- * out by the security manager when inserting a new {@link Provider}.
- *
- * @param provider a non-null Security Provider to add if it is not
- * already installed.
- * @return the new position of the designated provider in the list if it was
- * not already present, or -1 if it was already
- * installed.
- */
- public static final int addProvider(final Provider provider)
- {
- log.entering(ProviderUtil.class.getName(), "addProvider", provider);
-
- Integer actualPosition = (Integer) AccessController.doPrivileged(new PrivilegedAction()
- {
- public Object run()
- {
- int result = Security.insertProviderAt(provider, 1);
- return Integer.valueOf(result);
- }
- });
-
- int result = actualPosition.intValue();
- log.fine("Provider [" + provider.getName() + "] installed? " + (result != - 1));
-
- log.exiting(ProviderUtil.class.getName(), "addProvider", actualPosition);
- return result;
- }
-
- /**
- * Remove a designated Security Provider.
- *
- * IMPORTANT: This method overrides the security check usually carried
- * out by the security manager when removing a {@link Provider}.
- *
- * @param providerName the name of the {@link Provider} to remove.
- */
- public static final void removeProvider(final String providerName)
- {
- log.entering(ProviderUtil.class.getName(), "removeProvider", providerName);
-
- AccessController.doPrivileged(new PrivilegedAction()
- {
- public Object run()
- {
- Security.removeProvider(providerName);
- return null;
- }
- });
-
- log.exiting(ProviderUtil.class.getName(), "removeProvider");
- }
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/common/SecurityProviderInfo.java b/libjava/classpath/tools/gnu/classpath/tools/common/SecurityProviderInfo.java
deleted file mode 100644
index 44faebf..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/common/SecurityProviderInfo.java
+++ /dev/null
@@ -1,99 +0,0 @@
-/* SecurityProviderInfo.java -- Data Access Object for a security provider
- Copyright (C) 2006 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-02110-1301 USA.
-
-Linking this library statically or dynamically with other modules is
-making a combined work based on this library. Thus, the terms and
-conditions of the GNU General Public License cover the whole
-combination.
-
-As a special exception, the copyright holders of this library give you
-permission to link this library with independent modules to produce an
-executable, regardless of the license terms of these independent
-modules, and to copy and distribute the resulting executable under
-terms of your choice, provided that you also meet, for each linked
-independent module, the terms and conditions of the license of that
-module. An independent module is a module which is not derived from
-or based on this library. If you modify this library, you may extend
-this exception to your version of the library, but 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.security.Provider;
-
-/**
- * A Data Access Object (DAO) referenceing a Security Provider and its
- * position in the list of installed Security Providers in the underlying
- * JVM runtime.
- */
-public class SecurityProviderInfo
-{
- final private Provider provider;
- final private int position;
- private transient String str;
-
- /**
- * Constructs an instance of SecurityProviderInfo.
- *
- * Used by {@link ProviderUtil} to indicate the result of adding a provider,
- * given its class name.
- *
- * @param provider the possibly null {@link Provider}.
- * @param position the position of provider in the list of
- * Security Providers in the underlying JVM runtime. -1
- * if that provider (a) is null, or (b) was not added because it
- * was already there.
- */
- SecurityProviderInfo(Provider provider, int position)
- {
- super();
-
- this.provider = provider;
- this.position = position;
- }
-
- /** @return the possibly null {@link Provider} instance. */
- public Provider getProvider()
- {
- return this.provider;
- }
-
- /**
- * @return the position of the {@link Provider}, or -1 if it
- * was not added.
- */
- public int getPosition()
- {
- return this.position;
- }
-
- public String toString()
- {
- if (str == null)
- if (provider == null)
- str = "SecurityProviderInfo{null, -1}";
- else
- str = "SecurityProviderInfo{" + provider.getName() + ", " + position + "}";
-
- return str;
- }
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/doclets/AbstractDoclet.java b/libjava/classpath/tools/gnu/classpath/tools/doclets/AbstractDoclet.java
deleted file mode 100644
index 9e1fac6..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/doclets/AbstractDoclet.java
+++ /dev/null
@@ -1,1275 +0,0 @@
-/* gnu.classpath.tools.doclets.AbstractDoclet
- Copyright (C) 2004, 2012 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 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 gnu.classpath.tools.doclets;
-
-import com.sun.javadoc.ClassDoc;
-import com.sun.javadoc.ConstructorDoc;
-import com.sun.javadoc.Doc;
-import com.sun.javadoc.Doclet;
-import com.sun.javadoc.ExecutableMemberDoc;
-import com.sun.javadoc.FieldDoc;
-import com.sun.javadoc.MethodDoc;
-import com.sun.javadoc.PackageDoc;
-import com.sun.javadoc.Parameter;
-import com.sun.javadoc.RootDoc;
-import com.sun.javadoc.Tag;
-import com.sun.javadoc.Type;
-
-import com.sun.tools.doclets.Taglet;
-
-import gnu.classpath.tools.taglets.GnuExtendedTaglet;
-import gnu.classpath.tools.taglets.AuthorTaglet;
-import gnu.classpath.tools.taglets.CodeTaglet;
-import gnu.classpath.tools.taglets.DeprecatedTaglet;
-import gnu.classpath.tools.taglets.GenericTaglet;
-import gnu.classpath.tools.taglets.SinceTaglet;
-import gnu.classpath.tools.taglets.ValueTaglet;
-import gnu.classpath.tools.taglets.VersionTaglet;
-import gnu.classpath.tools.taglets.TagletContext;
-
-import gnu.classpath.tools.IOToolkit;
-import gnu.classpath.tools.FileSystemClassLoader;
-
-import java.io.File;
-import java.io.IOException;
-
-import java.lang.reflect.Method;
-import java.lang.reflect.Modifier;
-import java.lang.reflect.InvocationTargetException;
-
-import java.text.MessageFormat;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.LinkedHashMap;
-import java.util.LinkedHashSet;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Locale;
-import java.util.Map;
-import java.util.ResourceBundle;
-import java.util.Set;
-import java.util.SortedSet;
-import java.util.StringTokenizer;
-import java.util.TreeMap;
-import java.util.TreeSet;
-
-/**
- * An abstract Doclet implementation with helpers for common tasks
- * performed by Doclets.
- */
-public abstract class AbstractDoclet
-{
- /**
- * Mapping from tag type to Taglet for user Taglets specified on
- * the command line.
- */
- protected Map tagletMap = new LinkedHashMap();
-
- /**
- * Stores the package groups specified in the user
- * options. Contains objects of type PackageGroup.
- */
- private List packageGroups = new LinkedList();
-
- /**
- * Keeps track of the tags mentioned by the user during option
- * processiong so that an error can be emitted if a tag is
- * mentioned more than once.
- */
- private List mentionedTags = new LinkedList();
-
- public static int optionLength(String option) {
- return instance.getOptionLength(option);
- }
-
- public static boolean validOptions(String[][] options) {
- return true;
- }
-
- private static AbstractDoclet instance;
-
- protected static void setInstance(AbstractDoclet instance)
- {
- AbstractDoclet.instance = instance;
- }
-
- protected abstract void run()
- throws DocletConfigurationException, IOException;
-
- public static boolean start(RootDoc rootDoc)
- {
- try {
-
- instance.startInstance(rootDoc);
- return true;
- }
- catch (DocletConfigurationException e) {
- instance.printError(e.getMessage());
- return false;
- }
- catch (Exception e) {
- e.printStackTrace();
- return false;
- }
- }
-
- protected RootDoc getRootDoc()
- {
- return this.rootDoc;
- }
-
- private RootDoc rootDoc;
-
- protected abstract InlineTagRenderer getInlineTagRenderer();
-
- private void startInstance(RootDoc rootDoc)
- throws DocletConfigurationException, IOException
- {
- this.rootDoc = rootDoc;
-
- // Set the default Taglet order
-
- registerTaglet(new VersionTaglet());
- registerTaglet(new AuthorTaglet());
- registerTaglet(new SinceTaglet(getInlineTagRenderer()));
- registerTaglet(new StandardTaglet("serial"));
- registerTaglet(new StandardTaglet("deprecated"));
- registerTaglet(new StandardTaglet("see"));
- registerTaglet(new StandardTaglet("param"));
- registerTaglet(new StandardTaglet("return"));
-
- registerTaglet(new ValueTaglet());
- registerTaglet(new CodeTaglet());
-
- // Process command line options
-
- for (int i=0, ilim=rootDoc.options().length; i groupPackages = packageMatcher.filter(rootDoc.specifiedPackages());
-
- packageGroups.add(new PackageGroup(optionArr[1], groupPackages));
-
- return true;
- }
- catch (InvalidPackageWildcardException e) {
- return false;
- }
- }
- }
-
- private class DocletOptionTag
- extends DocletOption
- {
- DocletOptionTag(String optionName)
- {
- super(optionName);
- }
-
- public int getLength()
- {
- return 2;
- }
-
- public boolean set(String[] optionArr)
- {
- String tagSpec = optionArr[1];
- boolean validTagSpec = false;
- int ndx1 = tagSpec.indexOf(':');
- if (ndx1 < 0) {
- Taglet taglet = (Taglet)tagletMap.get(tagSpec);
- if (null == taglet) {
- printError("There is no standard tag '" + tagSpec + "'.");
- }
- else {
- if (mentionedTags.contains(taglet)) {
- printError("Tag '" + tagSpec + "' has been added or moved before.");
- }
- else {
- mentionedTags.add(taglet);
-
- // re-append taglet
- tagletMap.remove(tagSpec);
- tagletMap.put(tagSpec, taglet);
- }
- }
- }
- else {
- int ndx2 = tagSpec.indexOf(':', ndx1 + 1);
- if (ndx2 > ndx1 && ndx2 < tagSpec.length() - 1) {
- String tagName = tagSpec.substring(0, ndx1);
- String tagHead = null;
- if (tagSpec.charAt(ndx2 + 1) == '\"') {
- if (tagSpec.charAt(tagSpec.length() - 1) == '\"') {
- tagHead = tagSpec.substring(ndx2 + 2, tagSpec.length() - 1);
- validTagSpec = true;
- }
- }
- else {
- tagHead = tagSpec.substring(ndx2 + 1);
- validTagSpec = true;
- }
-
- boolean tagScopeOverview = false;
- boolean tagScopePackages = false;
- boolean tagScopeTypes = false;
- boolean tagScopeConstructors = false;
- boolean tagScopeMethods = false;
- boolean tagScopeFields = false;
- boolean tagDisabled = false;
-
- tag_option_loop:
- for (int n=ndx1+1; n:Xaoptcmf:\".");
- }
- return validTagSpec;
- }
- }
-
- private DocletOption[] commonOptions =
- {
- optionTargetDirectory,
- optionAuthor,
- optionVersion,
- optionNoSince,
- optionNoDeprecated,
- optionGroup,
- optionDocFilesSubDirs,
- optionExcludeDocFilesSubDir,
- optionTaglet,
- optionTag,
- };
-
- private void registerOptions()
- {
- if (!optionsRegistered) {
- for (int i=0; i nameToOptionMap = new HashMap();
-
- private int getOptionLength(String optionName)
- {
- registerOptions();
- DocletOption option = nameToOptionMap.get(optionName.toLowerCase());
- if (null != option) {
- return option.getLength();
- }
- else {
- return -1;
- }
- }
-
- protected List getKnownDirectSubclasses(ClassDoc classDoc)
- {
- List result = new LinkedList();
- if (!"java.lang.Object".equals(classDoc.qualifiedName())) {
- ClassDoc[] classes = rootDoc.classes();
- for (int i=0; i
- {
- private String name;
- private String lowerName;
-
- public IndexKey(String name)
- {
- this.name = name;
- this.lowerName = name.toLowerCase();
- }
-
- public boolean equals(Object other)
- {
- return this.lowerName.equals(((IndexKey)other).lowerName);
- }
-
- public int hashCode()
- {
- return lowerName.hashCode();
- }
-
- public int compareTo(IndexKey ik)
- {
- return lowerName.compareTo(ik.lowerName);
- }
-
- public String getName()
- {
- return name;
- }
- }
-
- private Map> categorizedIndex;
-
- protected Map> getCategorizedIndex()
- {
- if (null == categorizedIndex) {
- categorizedIndex = new LinkedHashMap>();
-
- Map indexMap = getIndexByName();
- LinkedList keys = new LinkedList(); //indexMap.keySet().size());
- keys.addAll(indexMap.keySet());
- Collections.sort(keys);
- Iterator it = keys.iterator(); //indexMap.keySet().iterator();
- char previousCategoryLetter = '\0';
- Character keyLetter = null;
- while (it.hasNext()) {
- IndexKey key = it.next();
- char firstChar = Character.toUpperCase(key.getName().charAt(0));
- if (firstChar != previousCategoryLetter) {
- keyLetter = new Character(firstChar);
- previousCategoryLetter = firstChar;
- categorizedIndex.put(keyLetter, new LinkedList());
- }
- List letterList = categorizedIndex.get(keyLetter);
- letterList.add(indexMap.get(key));
- }
- }
-
- return categorizedIndex;
- }
-
-
- private Map indexByName;
-
- protected Map getIndexByName()
- {
- if (null == indexByName) {
- // Create index
-
- // Collect index
-
- indexByName = new HashMap(); //TreeMap();
-
- // Add packages to index
-
- PackageDoc[] packages = rootDoc.specifiedPackages();
- for (int i=0, ilim=packages.length; i 0) {
- indexByName.put(new IndexKey(c.name()), c);
- }
- }
-
- // Add classes, fields and methods to index
-
- ClassDoc[] sumclasses = rootDoc.classes();
- for (int i=0, ilim=sumclasses.length; i it = tagletMap.keySet().iterator(); it.hasNext(); ) {
- String tagName = it.next();
- Taglet taglet = tagletMap.get(tagName);
- Doc doc = context.getDoc();
- if (inline == taglet.isInlineTag()
- && ((doc == null
- && taglet.inOverview())
- || (doc != null
- && ((doc.isConstructor() && taglet.inConstructor())
- || (doc.isField() && taglet.inField())
- || (doc.isMethod() && taglet.inMethod())
- || (doc instanceof PackageDoc && taglet.inPackage())
- || ((doc.isClass() || doc.isInterface()) && taglet.inType()))))) {
-
- List tagsOfThisType = new LinkedList();
- for (int i=0; i>>> usedClassToPackagesMap,
- ClassDoc usedClass, UsageType usageType, Doc user, PackageDoc userPackage)
- {
- Map>> packageToUsageTypeMap = usedClassToPackagesMap.get(usedClass);
- if (null == packageToUsageTypeMap) {
- packageToUsageTypeMap = new HashMap>>();
- usedClassToPackagesMap.put(usedClass, packageToUsageTypeMap);
- }
-
- Map> usageTypeToUsersMap = packageToUsageTypeMap.get(userPackage);
- if (null == usageTypeToUsersMap) {
- usageTypeToUsersMap = new TreeMap>();
- packageToUsageTypeMap.put(userPackage, usageTypeToUsersMap);
- }
-
- Set userSet = usageTypeToUsersMap.get(usageType);
- if (null == userSet) {
- userSet = new TreeSet(); // FIXME: we need the collator from Main here
- usageTypeToUsersMap.put(usageType, userSet);
- }
- userSet.add(user);
- }
-
- /**
- * Create the cross reference database.
- */
- private Map collectUsage() {
-
- Map>>> _usedClassToPackagesMap =
- new HashMap>>>();
-
- ClassDoc[] classes = rootDoc.classes();
- for (int i = 0, ilim = classes.length; i < ilim; ++ i) {
- ClassDoc clazz = classes[i];
-
- if (clazz.isInterface()) {
- // classes implementing
- InterfaceRelation relation
- = (InterfaceRelation)getInterfaceRelations().get(clazz);
- Iterator it = relation.implementingClasses.iterator();
- while (it.hasNext()) {
- ClassDoc implementor = it.next();
- addUsedBy(_usedClassToPackagesMap,
- clazz, UsageType.CLASS_IMPLEMENTING, implementor, implementor.containingPackage());
- }
- }
- else {
- // classes derived from
- for (ClassDoc superclass = clazz.superclass(); superclass != null;
- superclass = superclass.superclass()) {
- addUsedBy(_usedClassToPackagesMap,
- superclass, UsageType.CLASS_DERIVED_FROM, clazz, clazz.containingPackage());
- }
- }
-
- FieldDoc[] fields = clazz.fields();
- for (int j = 0, jlim = fields.length; j < jlim; ++ j) {
- FieldDoc field = fields[j];
-
- // fields of type
- ClassDoc fieldType = field.type().asClassDoc();
- if (null != fieldType) {
- addUsedBy(_usedClassToPackagesMap,
- fieldType, UsageType.FIELD_OF_TYPE,
- field, clazz.containingPackage());
- }
- }
-
- MethodDoc[] methods = clazz.methods();
- for (int j = 0, jlim = methods.length; j < jlim; ++ j) {
- MethodDoc method = methods[j];
-
- // methods with return type
-
- ClassDoc returnType = method.returnType().asClassDoc();
- if (null != returnType) {
- addUsedBy(_usedClassToPackagesMap,
- returnType, UsageType.METHOD_WITH_RETURN_TYPE,
- method, clazz.containingPackage());
- }
- Parameter[] parameters = method.parameters();
- for (int k=0; k>>> usedClassToPackagesMap = null;
-
- protected Map>> getUsageOfClass(ClassDoc classDoc)
- {
- if (null == this.usedClassToPackagesMap) {
- this.usedClassToPackagesMap = collectUsage();
- }
- return this.usedClassToPackagesMap.get(classDoc);
- }
-
- protected static class UsageType
- implements Comparable
- {
- public static final UsageType CLASS_DERIVED_FROM = new UsageType("class-derived-from");
- public static final UsageType CLASS_IMPLEMENTING = new UsageType("class-implementing");
- public static final UsageType FIELD_OF_TYPE = new UsageType("field-of-type");
- public static final UsageType METHOD_WITH_RETURN_TYPE = new UsageType("method-with-return-type");
- public static final UsageType METHOD_WITH_PARAMETER_TYPE = new UsageType("method-with-parameter-type");
- public static final UsageType METHOD_WITH_THROWN_TYPE = new UsageType("method-with-thrown-type");
- public static final UsageType CONSTRUCTOR_WITH_PARAMETER_TYPE = new UsageType("constructor-with-parameter-type");
- public static final UsageType CONSTRUCTOR_WITH_THROWN_TYPE = new UsageType("constructor-with-thrown-type");
- private String id;
-
- private UsageType(String id)
- {
- this.id = id;
- }
-
- public int compareTo(UsageType ut)
- {
- return this.id.compareTo(ut.id);
- }
-
- public String toString() {
- return "UsageType{id=" + id + "}";
- }
-
- public String getId() {
- return id;
- }
- }
-
- private ResourceBundle resources;
-
- protected String getString(String key)
- {
- if (null == resources) {
- Locale currentLocale = Locale.getDefault();
-
- resources
- = ResourceBundle.getBundle("htmldoclet.HtmlDoclet", currentLocale);
- }
-
- return resources.getString(key);
- }
-
- protected String format(String key, String value1)
- {
- return MessageFormat.format(getString(key), new Object[] { value1 });
- }
-
- protected List getPackageGroups()
- {
- return packageGroups;
- }
-
- protected void copyDocFiles(File sourceDir, File targetDir)
- throws IOException
- {
- File sourceDocFiles = new File(sourceDir, "doc-files");
- File targetDocFiles = new File(targetDir, "doc-files");
-
- if (sourceDocFiles.exists()) {
- IOToolkit.copyDirectory(sourceDocFiles,
- targetDocFiles,
- optionDocFilesSubDirs.getValue(),
- optionExcludeDocFilesSubDir.getComponents());
- }
- }
-
- private Set sourcePaths;
-
- /**
- * Try to determine the source directory for the given package by
- * looking at the path specified by -sourcepath, or the current
- * directory if -sourcepath hasn't been specified.
- *
- * @throws IOException if the source directory couldn't be
- * located.
- *
- * @return List of File
- */
- protected List getPackageSourceDirs(PackageDoc packageDoc)
- throws IOException
- {
- if (null == sourcePaths) {
- for (int i=0; iAbstractDoclet members or members of
- * AbstractDoclet subclasses when a problem caused by
- * user-specified options is detected.
- *
- * @see AbstractDoclet
- */
-public class DocletConfigurationException
- extends Exception
-{
- public DocletConfigurationException(String message)
- {
- super(message);
- }
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/doclets/DocletOption.java b/libjava/classpath/tools/gnu/classpath/tools/doclets/DocletOption.java
deleted file mode 100644
index fa67f5e..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/doclets/DocletOption.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/* gnu.classpath.tools.doclets.DocletOption
- 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., 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 gnu.classpath.tools.doclets;
-
-public abstract class DocletOption
-{
- private String optionName;
-
- protected DocletOption(String optionName)
- {
- this.optionName = optionName;
- }
-
- public String getName()
- {
- return this.optionName;
- }
-
- public abstract int getLength();
- public abstract boolean set(String[] optionArr);
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/doclets/DocletOptionColonSeparated.java b/libjava/classpath/tools/gnu/classpath/tools/doclets/DocletOptionColonSeparated.java
deleted file mode 100644
index e02e1eb..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/doclets/DocletOptionColonSeparated.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/* gnu.classpath.tools.doclets.DocletOptionColonSeparated
- 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., 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 gnu.classpath.tools.doclets;
-
-import java.util.LinkedHashSet;
-import java.util.Set;
-import java.util.StringTokenizer;
-
-/**
- * Processes a doclet option whose value consists of a
- * colon-separated list of strings.
- */
-public class DocletOptionColonSeparated
- extends DocletOption
-{
- private Set components = new LinkedHashSet();
-
- DocletOptionColonSeparated(String optionName)
- {
- super(optionName);
- }
-
- public int getLength()
- {
- return 2;
- }
-
- public boolean set(String[] optionArr)
- {
- StringTokenizer st = new StringTokenizer(":");
- while (st.hasMoreTokens()) {
- components.add(st.nextToken());
- }
- return true;
- }
-
- public Set getComponents()
- {
- return components;
- }
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/doclets/DocletOptionFile.java b/libjava/classpath/tools/gnu/classpath/tools/doclets/DocletOptionFile.java
deleted file mode 100644
index b836857..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/doclets/DocletOptionFile.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/* gnu.classpath.tools.doclets.DocletOptionFile
- 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., 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 gnu.classpath.tools.doclets;
-
-import java.io.File;
-
-/**
- * Processes a doclet option whose value denotes an existing or
- * non-existing file in the local file system.
- */
-public class DocletOptionFile
- extends DocletOption
-{
- private File value;
-
- public DocletOptionFile(String optionName)
- {
- this(optionName, null);
- }
-
- public DocletOptionFile(String optionName, File defaultFile)
- {
- super(optionName);
- this.value = defaultFile;
- }
-
- public File getValue()
- {
- return this.value;
- }
-
- public int getLength()
- {
- return 2;
- }
-
- public boolean set(String[] optionArr)
- {
- this.value = new File(optionArr[1]);
- return true;
- }
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/doclets/DocletOptionFlag.java b/libjava/classpath/tools/gnu/classpath/tools/doclets/DocletOptionFlag.java
deleted file mode 100644
index 13afe40..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/doclets/DocletOptionFlag.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/* gnu.classpath.tools.doclets.DocletOptionFlag
- 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., 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 gnu.classpath.tools.doclets;
-
-/**
- * Processes a doclet option without a value whose existance denotes
- * that a specific feature should be enabled or disabled.
- */
-public class DocletOptionFlag
- extends DocletOption
-{
- private boolean value = false;
-
- public DocletOptionFlag(String optionName)
- {
- super(optionName);
- }
-
- public boolean getValue()
- {
- return this.value;
- }
-
- public int getLength()
- {
- return 1;
- }
-
- public boolean set(String[] optionArr)
- {
- value = true;
- return true;
- }
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/doclets/DocletOptionPackageWildcard.java b/libjava/classpath/tools/gnu/classpath/tools/doclets/DocletOptionPackageWildcard.java
deleted file mode 100644
index 33a637d..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/doclets/DocletOptionPackageWildcard.java
+++ /dev/null
@@ -1,124 +0,0 @@
-/* gnu.classpath.tools.doclets.DocletOptionPackageWildcard
- 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., 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 gnu.classpath.tools.doclets;
-
-import java.util.LinkedHashSet;
-import java.util.Set;
-import java.util.SortedSet;
-import java.util.StringTokenizer;
-import java.util.TreeSet;
-
-import com.sun.javadoc.PackageDoc;
-
-/**
- * Processes a doclet option whose value consists of a
- * colon-separated list of package wildcards, or - optionally -
- * equals the string "all", denoting that all packages should match.
- */
-public class DocletOptionPackageWildcard
- extends DocletOption
-{
- private PackageMatcher packageMatcher;
- private boolean allowAll;
- private boolean specified;
-
- DocletOptionPackageWildcard(String optionName, boolean allowAll)
- {
- super(optionName);
- this.allowAll = allowAll;
- }
-
- public int getLength()
- {
- return 2;
- }
-
- public boolean isSpecified()
- {
- return specified;
- }
-
- public boolean set(String[] optionArr)
- {
- this.specified = true;
- try {
- if (allowAll && "all".equals(optionArr[2])) {
- packageMatcher = null;
- }
- else {
- packageMatcher = new PackageMatcher();
-
- StringTokenizer tokenizer = new StringTokenizer(optionArr[2], ":");
- while (tokenizer.hasMoreTokens()) {
- String packageWildcard = tokenizer.nextToken();
- packageMatcher.addWildcard(packageWildcard);
- }
- }
- return true;
- }
- catch (InvalidPackageWildcardException e) {
- // FIXME: output problem description here, better throw
- // DocletConfigurationException
- return false;
- }
- }
-
- public SortedSet filter(PackageDoc[] packages)
- {
- if (null != packageMatcher) {
- return packageMatcher.filter(packages);
- }
- else {
- SortedSet result = new TreeSet();
- for (int i=0; i patterns = new HashSet();
-
- /**
- * Add a wildcard to be matched. Wildcards can contain asterisk
- * characters which match zero or more characters.
- *
- * @throw InvalidPackageWildcardException if the wildcard cannot
- * match any valid package name.
- */
- public void addWildcard(String wildcard)
- throws InvalidPackageWildcardException
- {
- final int STATE_ID_START = 0;
- final int STATE_ID = 1;
-
- int state = STATE_ID_START;
-
- char[] wildcardChars = wildcard.toCharArray();
- StringBuffer regexString = new StringBuffer();
-
- for (int i=0; i filter(PackageDoc[] packageDocs)
- {
- SortedSet result = new TreeSet();
- for (int i=0; i it = patterns.iterator();
- while (it.hasNext()) {
- Pattern pattern = it.next();
- Matcher matcher = pattern.matcher(packageDoc.name());
- if (matcher.matches()) {
- return true;
- }
- }
- return false;
- }
-
- public String toString()
- {
- return "PackageMatcher{patterns=" + patterns + "}";
- }
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/doclets/StandardTaglet.java b/libjava/classpath/tools/gnu/classpath/tools/doclets/StandardTaglet.java
deleted file mode 100644
index f43f2a1..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/doclets/StandardTaglet.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/* gnu.classpath.tools.doclets.StandardTaglet
- 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., 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 gnu.classpath.tools.doclets;
-
-import com.sun.javadoc.Tag;
-import com.sun.tools.doclets.Taglet;
-
-/**
- * Represents one of the built-in taglets. Used for specifying taglet
- * order.
- */
-public class StandardTaglet
- implements Taglet
-{
- private String name;
-
- /**
- * Initialize with one of the built-in taglet names.
- */
- public StandardTaglet(String name) {
- this.name = name;
- }
-
- public boolean inField() {
- return true;
- }
-
- public boolean inConstructor() {
- return true;
- }
-
- public boolean inMethod() {
- return true;
- }
-
- public boolean inOverview() {
- return true;
- }
-
- public boolean inPackage() {
- return true;
- }
-
- public boolean inType() {
- return true;
- }
-
- public boolean isInlineTag() {
- return false;
- }
-
- public String getName() {
- return this.name;
- }
-
- public String toString(Tag tag) {
- //assert(false);
- return null;
- }
-
- public String toString(Tag[] tags) {
- //assert(false);
- return null;
- }
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/doclets/TagletPrinter.java b/libjava/classpath/tools/gnu/classpath/tools/doclets/TagletPrinter.java
deleted file mode 100644
index b59704a..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/doclets/TagletPrinter.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/* gnu.classpath.tools.doclets.TagletPrinter
- 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., 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 gnu.classpath.tools.doclets;
-
-/**
- * Call-back interface for taglet string output.
- */
-public interface TagletPrinter
-{
- public void printTagletString(String s);
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/doclets/debugdoclet/DebugDoclet.java b/libjava/classpath/tools/gnu/classpath/tools/doclets/debugdoclet/DebugDoclet.java
deleted file mode 100644
index 18bf579..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/doclets/debugdoclet/DebugDoclet.java
+++ /dev/null
@@ -1,174 +0,0 @@
-/* DebugDoclet.java - Doclet for debugging
- 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., 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 gnu.classpath.tools.doclets.debugdoclet;
-
-import com.sun.javadoc.ClassDoc;
-import com.sun.javadoc.FieldDoc;
-import com.sun.javadoc.MethodDoc;
-import com.sun.javadoc.PackageDoc;
-import com.sun.javadoc.RootDoc;
-import com.sun.javadoc.Tag;
-
-import java.io.PrintStream;
-
-import java.util.Arrays;
-
-public class DebugDoclet
-{
- public static boolean start(RootDoc rootDoc)
- {
- new DebugDoclet().run(rootDoc);
- return true;
- }
-
- private PrintStream out;
-
- public DebugDoclet()
- {
- out = System.out;
- }
-
- private void printHeader(String header)
- {
- out.println();
- out.println("******** " + header + " ********");
- out.println();
- }
-
- private void printSubHeader(String header)
- {
- out.println();
- out.println("======== " + header + " ========");
- out.println();
- }
-
- private void printSub2Header(String header)
- {
- out.println();
- out.println("-------- " + header + " --------");
- out.println();
- }
-
- private void run(RootDoc rootDoc)
- {
- printHeader("Overview");
-
- printSubHeader("Specified Packages");
-
- PackageDoc[] specifiedPackages = rootDoc.specifiedPackages();
- Arrays.sort(specifiedPackages);
- for (int i=0; i0) { out.print(", "); }
- out.print(thrownExceptions[k].qualifiedTypeName());
- }
- out.println();
- }
-
- printSub2Header("Fields");
-
- FieldDoc[] fields = classes[i].fields();
-
- for (int j=0; jdiv and span tags by more
- * specialized HTML tags.
- */
-public class CssClass
-{
- public static final CssClass BODY_MENU_PACKAGES = new CssClass("menu packages");
- public static final CssClass BODY_MENU_CLASSES = new CssClass("menu classes");
- public static final CssClass BODY_CONTENT_CLASS = new CssClass("content class");
- public static final CssClass BODY_CONTENT_DEPRECATED = new CssClass("content deprecated");
- public static final CssClass BODY_CONTENT_PACKAGE = new CssClass("content package");
- public static final CssClass BODY_CONTENT_OVERVIEW = new CssClass("content overview");
- public static final CssClass BODY_CONTENT_ABOUT = new CssClass("content about");
- public static final CssClass BODY_CONTENT_HELP = new CssClass("content help");
- public static final CssClass BODY_CONTENT_PACKAGE_TREE = new CssClass("content packagetree");
- public static final CssClass BODY_CONTENT_FULL_TREE = new CssClass("content fulltree");
- public static final CssClass BODY_CONTENT_INDEX = new CssClass("content index");
- public static final CssClass BODY_CONTENT_USES = new CssClass("content uses");
- public static final CssClass BODY_CONTENT_SOURCE = new CssClass("content source");
-
- public static final CssClass OVERVIEW_TITLE = new CssClass("overview title", "h1");
- public static final CssClass OVERVIEW_SUMMARY = new CssClass("overview summary");
- public static final CssClass OVERVIEW_SUMMARY_LEFT = new CssClass("left");
- public static final CssClass OVERVIEW_SUMMARY_RIGHT = new CssClass("right");
- public static final CssClass OVERVIEW_DESCRIPTION_TOP = new CssClass("overview description top");
- public static final CssClass OVERVIEW_DESCRIPTION_FULL = new CssClass("overview description full");
-
- public static final CssClass DEPRECATION_TITLE = new CssClass("deprecation title", "h1");
- public static final CssClass DEPRECATION_SUMMARY = new CssClass("summary");
- public static final CssClass DEPRECATION_SUMMARY_LEFT = new CssClass("left");
- public static final CssClass DEPRECATION_SUMMARY_DESCRIPTION = new CssClass("description");
- public static final CssClass DEPRECATION_TOC = new CssClass("dep-toc");
- public static final CssClass DEPRECATION_TOC_HEADER = new CssClass("header", "h3");
- public static final CssClass DEPRECATION_TOC_LIST = new CssClass("list", "ul");
- public static final CssClass DEPRECATION_TOC_ENTRY = new CssClass("entry", "li");
- public static final CssClass DEPRECATION_EMPTY = new CssClass("dep-empty", "p");
- public static final CssClass DEPRECATION_LIST = new CssClass("dep-list", "div");
-
- public static final CssClass SERIALIZED_TITLE = new CssClass("serialized title", "h1");
- public static final CssClass SERIALIZED_PACKAGE_HEADER = new CssClass("serialized package header", "h2");
- public static final CssClass SERIALIZED_CLASS_HEADER = new CssClass("serialized class header", "h3");
- public static final CssClass SERIALIZED_SVUID_OUTER = new CssClass("serialized svuid outer", "p");
- public static final CssClass SERIALIZED_SVUID_HEADER = new CssClass("serialized svuid header", "b");
- public static final CssClass SERIALIZED_SVUID_VALUE = new CssClass("serialized svuid header");
- public static final CssClass SERIALIZED_SECTION = new CssClass("serialized section");
- public static final CssClass SERIALIZED_SECTION_HEADER = new CssClass("serialized section header", "h4");
-
- public static final CssClass PACKAGE_TITLE = new CssClass("package title", "h1");
- public static final CssClass PACKAGE_SUMMARY = new CssClass("package summary");
- public static final CssClass PACKAGE_SUMMARY_LEFT = new CssClass("left");
- public static final CssClass PACKAGE_SUMMARY_RIGHT = new CssClass("right");
- public static final CssClass PACKAGE_DESCRIPTION_TOP = new CssClass("package description top");
- public static final CssClass PACKAGE_DESCRIPTION_FULL = new CssClass("package description full");
- public static final CssClass PACKAGE_TREE_TITLE = new CssClass("package tree title", "h1");
- public static final CssClass PACKAGE_TREE_SECTION_TITLE = new CssClass("package tree section title", "h2");
- public static final CssClass PACKAGE_TREE = new CssClass("tree", "ul");
-
- public static final CssClass TREE_LINK = new CssClass("tree link", "b");
-
- public static final CssClass FULL_TREE_PACKAGELIST = new CssClass("fulltree package list", "dl");
- public static final CssClass FULL_TREE_PACKAGELIST_HEADER = new CssClass("fulltree package header", "dt", "b");
- public static final CssClass FULL_TREE_PACKAGELIST_ITEM = new CssClass("fulltree package item", "dd");
-
- public static final CssClass PACKAGE_MENU_LIST = new CssClass("package menu-list", "div");
- public static final CssClass PACKAGE_MENU_ENTRY = new CssClass("package menu-entry");
- public static final CssClass PACKAGE_MENU_TITLE = new CssClass("package menu-title", "h4");
-
- public static final CssClass CLASS_MENU_LIST = new CssClass("classes menu-list", "div");
- public static final CssClass CLASS_MENU_TITLE = new CssClass("classes menu-title", "h4");
- public static final CssClass CLASS_MENU_SUBTITLE = new CssClass("classes menu-subtitle", "p");
- public static final CssClass CLASS_MENU_ENTRY_CLASS = new CssClass("classes menu-entry class");
- public static final CssClass CLASS_MENU_ENTRY_INTERFACE = new CssClass("classes menu-entry interface", "i");
-
- public static final CssClass INDEX_TITLE = new CssClass("index title", "h1");
- public static final CssClass INDEX_CATEGORY = new CssClass("index category");
- public static final CssClass INDEX_CATEGORY_HEADER = new CssClass("index category header", "h2");
- public static final CssClass INDEX_ENTRY = new CssClass("index entry");
- public static final CssClass INDEX_ENTRY_DESCRIPTION = new CssClass("description");
- public static final CssClass INDEX_ENTRY_KEY = new CssClass("key");
- public static final CssClass INDEX_LETTERS = new CssClass("index letters");
- public static final CssClass INDEX_LETTER = new CssClass("index letter");
- public static final CssClass INDEX_LETTER_SPACER = new CssClass("index letter spacer");
-
- public static final CssClass CLASS_TITLE = new CssClass("class title outer");
- public static final CssClass CLASS_TITLE_PACKAGE = new CssClass("class title-package", "h3");
- public static final CssClass CLASS_TITLE_CLASS = new CssClass("class title-class", "h1");
- public static final CssClass CLASS_SUBCLASSES = new CssClass("class subclasses", "dl");
- public static final CssClass CLASS_SUBCLASSES_HEADER = new CssClass("class subclasses header", "dt", "b");
- public static final CssClass CLASS_SUBCLASSES_ITEM = new CssClass("class subclasses header", "dd");
- public static final CssClass CLASS_ENCLOSINGCLASS = new CssClass("class enclosing", "dl");
- public static final CssClass CLASS_ENCLOSINGCLASS_HEADER = new CssClass("class enclosing header", "dt", "b");
- public static final CssClass CLASS_ENCLOSINGCLASS_ITEM = new CssClass("class enclosing item", "dd");
- public static final CssClass CLASS_KNOWNIMPLEMENTING = new CssClass("class knownimplementing", "dl");
- public static final CssClass CLASS_KNOWNIMPLEMENTING_HEADER = new CssClass("header", "dt", "b");
- public static final CssClass CLASS_KNOWNIMPLEMENTING_ITEM = new CssClass("item", "dd");
- public static final CssClass CLASS_INHERITANCETREE = new CssClass("class inheritance-tree");
- public static final CssClass CLASS_SYNOPSIS = new CssClass("class synopsis outer");
- public static final CssClass CLASS_SYNOPSIS_NAME = new CssClass("class synopsis name", "b");
- public static final CssClass CLASS_SYNOPSIS_DECLARATION = new CssClass("class synopsis declaration", "div", "code");
- public static final CssClass CLASS_SYNOPSIS_SUPERCLASS = new CssClass("class synopsis superclass", "div", "code");
- public static final CssClass CLASS_SYNOPSIS_IMPLEMENTS = new CssClass("class synopsis implements", "div", "code");
- public static final CssClass CLASS_DESCRIPTION = new CssClass("class description");
- public static final CssClass CLASS_SUMMARY = new CssClass("class summary");
- public static final CssClass CLASS_SUMMARY_LEFT = new CssClass("left", new String[] { "valign" }, new String[] { "top" });
- public static final CssClass CLASS_SUMMARY_LEFT_SYNOPSIS = new CssClass("synopsis", "code");
- public static final CssClass CLASS_SUMMARY_RIGHT = new CssClass("right");
- public static final CssClass CLASS_SUMMARY_RIGHT_LIST = new CssClass("list", "dl");
- public static final CssClass CLASS_SUMMARY_RIGHT_SYNOPSIS = new CssClass("synopsis", "dt", "code");
- public static final CssClass CLASS_SUMMARY_RIGHT_DESCRIPTION = new CssClass("description", "dd");
- public static final CssClass CLASS_SUMMARY_INHERITED = new CssClass("inherited");
- public static final CssClass CLASS_SUMMARY_INHERITED_MEMBER = new CssClass("member", "code");
- public static final CssClass CLASS_BOILERPLATE = new CssClass("boilerplate", "pre", new String[] { "style" }, new String[] { "font-size: x-small;" });
-
- public static final CssClass USAGE_TITLE = new CssClass("usage title", "h1");
- public static final CssClass USAGE_PACKAGE_TITLE = new CssClass("usage package title", "h2");
- public static final CssClass USAGE_USAGE_TITLE = new CssClass("usage usage title", "h3");
- public static final CssClass USAGE_SUMMARY = new CssClass("usage summary");
- public static final CssClass USAGE_SUMMARY_LEFT = new CssClass("left");
- public static final CssClass USAGE_SUMMARY_RIGHT = new CssClass("right");
- public static final CssClass USAGE_SUMMARY_SYNOPSIS = new CssClass("synopsis");
- public static final CssClass USAGE_SUMMARY_DESCRIPTION = new CssClass("description");
- public static final CssClass USAGE_TABLE_HEADER = new CssClass("table header", "h3");
- public static final CssClass USAGE_EMPTY = new CssClass("usage empty", "p");
-
- public static final CssClass MEMBER_DETAIL = new CssClass("member detail outer");
- public static final CssClass MEMBER_DETAIL_NAME = new CssClass("member detail name", "h3");
- public static final CssClass MEMBER_DETAIL_BODY = new CssClass("member detail name", "blockquote");
- public static final CssClass MEMBER_DETAIL_SYNOPSIS = new CssClass("member detail synopsis", "pre");
- public static final CssClass MEMBER_DETAIL_DESCRIPTION = new CssClass("member detail description");
- public static final CssClass MEMBER_DETAIL_SPECIFIED_BY_LIST = new CssClass("member detail specified by list", "dl");
- public static final CssClass MEMBER_DETAIL_SPECIFIED_BY_HEADER = new CssClass("member detail specified by header", "dt", "b");
- public static final CssClass MEMBER_DETAIL_SPECIFIED_BY_ITEM = new CssClass("member detail specified by item", "dd");
- public static final CssClass MEMBER_DETAIL_OVERRIDDEN_LIST = new CssClass("member detail overridden list", "dl");
- public static final CssClass MEMBER_DETAIL_OVERRIDDEN_HEADER = new CssClass("member detail overridden header", "dt", "b");
- public static final CssClass MEMBER_DETAIL_OVERRIDDEN_ITEM = new CssClass("member detail overridden item", "dd");
- public static final CssClass MEMBER_DETAIL_PARAMETER_LIST = new CssClass("parameter", "div", "dl");
- public static final CssClass MEMBER_DETAIL_PARAMETER_HEADER = new CssClass("header", "dt", "b");
- public static final CssClass MEMBER_DETAIL_PARAMETER_ITEM = new CssClass("item", "dd");
- public static final CssClass MEMBER_DETAIL_PARAMETER_ITEM_NAME = new CssClass("name", "code");
- public static final CssClass MEMBER_DETAIL_PARAMETER_ITEM_SEPARATOR = new CssClass("separator");
- public static final CssClass MEMBER_DETAIL_PARAMETER_ITEM_DESCRIPTION = new CssClass("description");
- public static final CssClass MEMBER_DETAIL_RETURN_LIST = new CssClass("member detail return list", "div", "dl");
- public static final CssClass MEMBER_DETAIL_RETURN_HEADER = new CssClass("member detail return header", "dt", "b");
- public static final CssClass MEMBER_DETAIL_RETURN_ITEM = new CssClass("member detail return item", "dd");
- public static final CssClass MEMBER_DETAIL_THROWN_LIST = new CssClass("member detail thrown list", "div", "dl");
- public static final CssClass MEMBER_DETAIL_THROWN_HEADER = new CssClass("member detail thrown header", "dt", "b");
- public static final CssClass MEMBER_DETAIL_THROWN_ITEM = new CssClass("member detail thrown item", "dd");
- public static final CssClass MEMBER_DETAIL_THROWN_ITEM_NAME = new CssClass("name", "code");
- public static final CssClass MEMBER_DETAIL_THROWN_ITEM_SEPARATOR = new CssClass("separator");
- public static final CssClass MEMBER_DETAIL_THROWN_ITEM_DESCRIPTION = new CssClass("description");
-
- public static final CssClass TABLE_HEADER = new CssClass("table header", "h2");
- public static final CssClass TABLE_SUB_HEADER = new CssClass("table sub header", "h3");
- public static final CssClass TABLE_CONTAINER = new CssClass("table container", "dl", "dd");
-
- public static final CssClass SECTION = new CssClass("section", "div");
- public static final CssClass SECTION_HEADER = new CssClass("section header", "h2");
-
- public static final CssClass NAVBAR_TOP = new CssClass("navbar div top");
- public static final CssClass NAVBAR_TOP_NAVI = new CssClass("navi");
- public static final CssClass NAVBAR_TOP_HEADER = new CssClass("header", new String[] { "rowspan" }, new String[] { "2" });
- public static final CssClass NAVBAR_BOTTOM = new CssClass("navbar div bottom");
- public static final CssClass NAVBAR_BOTTOM_SPACER = new CssClass("navbar bottom spacer", "p");
- public static final CssClass NAVBAR_ITEM_ENABLED = new CssClass("navbar item enabled");
- public static final CssClass NAVBAR_ITEM_DISABLED = new CssClass("navbar item disabled");
- public static final CssClass NAVBAR_ITEM_ACTIVE = new CssClass("navbar item active");
-
- public static final CssClass TAGLET = new CssClass("taglet", "div");
-
- public static final CssClass ABOUT_TITLE = new CssClass("about title", "h1");
- public static final CssClass ABOUT_GENERATOR = new CssClass("about generator", "p");
-
- public static final CssClass SOURCE = new CssClass("source body");
- public static final CssClass SOURCE_TITLE = new CssClass("source title", "h1");
-
- public static final CssClass DEPRECATED = new CssClass("deprecated", "span");
- public static final CssClass DEPRECATED_INLINE = new CssClass("deprecated", "p");
- public static final CssClass DEPRECATED_HEADER = new CssClass("deprecated header", "b");
- public static final CssClass DEPRECATED_BODY = new CssClass("deprecated", "i");
-
- private String name;
- private String elementName;
- private String innerElementName;
- private String[] attributeNames;
- private String[] attributeValues;
-
- private CssClass(String name)
- {
- this(name, null);
- }
-
- private CssClass(String name, String elementName)
- {
- this(name, elementName, null);
- }
-
- private CssClass(String name, String elementName, String innerElementName)
- {
- this(name, elementName, innerElementName, null, null);
- }
-
- private CssClass(String name, String elementName, String[] attributeNames, String[] attributeValues)
- {
- this(name, null, null, attributeNames, attributeValues);
- }
-
- private CssClass(String name, String[] attributeNames, String[] attributeValues)
- {
- this(name, null, null, attributeNames, attributeValues);
- }
-
- private CssClass(String name, String elementName, String innerElementName, String[] attributeNames, String[] attributeValues)
- {
- this.name = name;
- this.elementName = elementName;
- this.innerElementName = innerElementName;
- this.attributeNames = attributeNames;
- this.attributeValues = attributeValues;
- }
-
- public String getSpanElementName()
- {
- if (null != this.elementName) {
- return this.elementName;
- }
- else {
- return "span";
- }
- }
-
- public String getDivElementName()
- {
- if (null != this.elementName) {
- return this.elementName;
- }
- else {
- return "div";
- }
- }
-
- public String getInnerElementName()
- {
- return this.innerElementName;
- }
-
- public String[] getAttributeNames()
- {
- return this.attributeNames;
- }
-
- public String[] getAttributeValues()
- {
- return this.attributeValues;
- }
-
- public String getName()
- {
- return name;
- }
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/doclets/htmldoclet/ExternalDocSet.java b/libjava/classpath/tools/gnu/classpath/tools/doclets/htmldoclet/ExternalDocSet.java
deleted file mode 100644
index f3b2fa8..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/doclets/htmldoclet/ExternalDocSet.java
+++ /dev/null
@@ -1,187 +0,0 @@
-/* gnu.classpath.tools.doclets.htmldoclet.ExternalDocSet
- 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., 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 gnu.classpath.tools.doclets.htmldoclet;
-
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-
-import java.net.MalformedURLException;
-import java.net.URL;
-
-import java.util.HashSet;
-import java.util.Properties;
-import java.util.Set;
-
-import com.sun.javadoc.ClassDoc;
-
-public class ExternalDocSet
-{
- private String url;
- private String packageListDir;
- private URL docSetDirectoryURL;
-
- public String getPackageListDir()
- {
- return packageListDir;
- }
-
- public ExternalDocSet(String url,
- String packageListDir)
- {
- this.url = url;
- this.packageListDir = packageListDir;
- }
-
- private Set packageNames = new HashSet();
- private boolean javadocCompatible;
-
- public void load(File targetDirectory)
- throws IOException, MalformedURLException
- {
- if (!url.endsWith("/")) {
- url += "/";
- }
-
- this.docSetDirectoryURL = new URL(targetDirectory.toURL(),
- url);
-
- URL packageListDirURL;
- if (null != packageListDir) {
- if (!packageListDir.endsWith("/")) {
- packageListDir += "/";
- }
- packageListDirURL = new URL(new File(System.getProperty("user.dir")).toURL(),
- packageListDir);
- }
- else {
- packageListDirURL = docSetDirectoryURL;
- }
-
- URL packageListURL = new URL(packageListDirURL,
- "package-list");
- InputStream in = packageListURL.openStream();
- if (null != in) {
- readPackages(in);
- in.close();
- }
- else {
- throw new FileNotFoundException(packageListURL.toString());
- }
-
- URL gjdocPropertiesURL = new URL(packageListDirURL,
- "gjdoc.properties");
- try {
- InputStream propertiesIn = gjdocPropertiesURL.openStream();
- if (null != in) {
- Properties properties = new Properties();
- properties.load(propertiesIn);
- propertiesIn.close();
-
- String gjdocCompatProperty = properties.getProperty("gjdoc.compat");
- if (null != gjdocCompatProperty) {
- javadocCompatible = "true".equals(properties.getProperty("gjdoc.compat"));
- }
- else {
- javadocCompatible = true;
- }
- }
- else {
- javadocCompatible = true;
- }
- }
- catch (FileNotFoundException e) {
- javadocCompatible = true;
- }
- }
-
- public String getPackageDocURL(String packageName)
- {
- try {
- URL packageURL = new URL(docSetDirectoryURL,
- packageName.replace('.', '/'));
- return packageURL.toString();
- }
- catch (MalformedURLException e) {
- // This should not happen since we know that packageName is a
- // proper Java identifiers, so the resulting URL can't be
- // invalid
- throw new RuntimeException(e);
- }
- }
-
- public String getClassDocURL(String packageName, String typeName)
- {
- try {
- URL fileURL = new URL(docSetDirectoryURL,
- packageName.replace('.', '/') + "/" + typeName + ".html");
- return fileURL.toString();
- }
- catch (MalformedURLException e) {
- // This should not happen since we know that packageName and
- // typeName are proper Java identifiers, so the resulting URL
- // can't be invalid
- throw new RuntimeException(e);
- }
- }
-
- protected void readPackages(InputStream in)
- throws IOException
- {
- BufferedReader reader
- = new BufferedReader(new InputStreamReader(in, "UTF-8"));
- String line;
- while ((line = reader.readLine()) != null) {
- line = line.trim();
- packageNames.add(line);
- }
- }
-
- public Set getPackageNames()
- {
- return packageNames;
- }
-
- public boolean isJavadocCompatible()
- {
- return javadocCompatible;
- }
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet.java b/libjava/classpath/tools/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet.java
deleted file mode 100644
index 99361ff..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet.java
+++ /dev/null
@@ -1,3883 +0,0 @@
-/* gnu.classpath.tools.doclets.htmldoclet.HtmlDoclet
- Copyright (C) 2004, 2012 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 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 gnu.classpath.tools.doclets.htmldoclet;
-
-import gnu.classpath.tools.IOToolkit;
-
-import gnu.classpath.tools.doclets.AbstractDoclet;
-import gnu.classpath.tools.doclets.DocletConfigurationException;
-import gnu.classpath.tools.doclets.DocletOption;
-import gnu.classpath.tools.doclets.DocletOptionFile;
-import gnu.classpath.tools.doclets.DocletOptionFlag;
-import gnu.classpath.tools.doclets.DocletOptionString;
-import gnu.classpath.tools.doclets.PackageGroup;
-import gnu.classpath.tools.doclets.TagletPrinter;
-import gnu.classpath.tools.doclets.InlineTagRenderer;
-
-import gnu.classpath.tools.doclets.xmldoclet.HtmlRepairer;
-
-import gnu.classpath.tools.taglets.GnuExtendedTaglet;
-import gnu.classpath.tools.taglets.TagletContext;
-
-import gnu.classpath.tools.java2xhtml.Java2xhtml;
-
-import gnu.classpath.tools.StringToolkit;
-
-import com.sun.javadoc.*;
-import com.sun.tools.doclets.Taglet;
-
-import java.io.ByteArrayInputStream;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.FileOutputStream;
-import java.io.FileReader;
-import java.io.FileWriter;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.IOException;
-import java.io.OutputStreamWriter;
-import java.io.PrintWriter;
-import java.io.StringWriter;
-
-import java.net.MalformedURLException;
-
-import java.nio.charset.Charset;
-
-import java.text.DateFormat;
-import java.text.MessageFormat;
-
-import java.util.Arrays;
-import java.util.Calendar;
-import java.util.Collection;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.LinkedHashSet;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.ListIterator;
-import java.util.Locale;
-import java.util.Map;
-import java.util.Properties;
-import java.util.Set;
-import java.util.SortedSet;
-import java.util.TimeZone;
-import java.util.TreeSet;
-
-public class HtmlDoclet
- extends AbstractDoclet
- implements InlineTagRenderer
-{
- private static String filenameExtension = ".html";
-
- /**
- * Contains ExternalDocSet.
- */
- private List externalDocSets = new LinkedList();
-
- /**
- * Contains String->ExternalDocSet.
- */
- private Map packageNameToDocSet = new HashMap();
-
- /**
- * Cache for version string from resource /version.properties
- */
- private String docletVersion;
-
- /**
- * For now, do not output a help page.
- */
- private static final boolean outputHelpPage = false;
-
- /**
- * Stores the output encoding (either the one specified using
- * -charset, or the platform default encoding).
- */
- private String outputCharset;
-
- private void printNavBar(HtmlPage output, String currentPage, ClassDoc currentClass)
- {
- output.beginDiv(CssClass.NAVBAR_TOP);
-
- boolean overviewLevel
- = ("overview".equals(currentPage)
- || "full-tree".equals(currentPage)
- || "index".equals(currentPage)
- || "split-index".equals(currentPage)
- || "serialized".equals(currentPage)
- || "deprecated".equals(currentPage)
- || "about".equals(currentPage)
- );
-
- if (!isSinglePackage()) {
- if ("overview".equals(currentPage)) {
- output.beginSpan(CssClass.NAVBAR_ITEM_ACTIVE);
- output.print("Overview");
- output.endSpan(CssClass.NAVBAR_ITEM_ACTIVE);
- }
- else {
- output.beginSpan(CssClass.NAVBAR_ITEM_ENABLED);
- output.beginAnchor(output.getPathToRoot() + "/overview-summary" + filenameExtension);
- output.print("Overview");
- output.endAnchor();
- output.endSpan(CssClass.NAVBAR_ITEM_ENABLED);
- }
-
- output.print(" ");
- }
-
- if (!overviewLevel || isSinglePackage()) {
- if ("package".equals(currentPage)) {
- output.beginSpan(CssClass.NAVBAR_ITEM_ACTIVE);
- output.print("Package");
- output.endSpan(CssClass.NAVBAR_ITEM_ACTIVE);
- }
- else {
- output.beginSpan(CssClass.NAVBAR_ITEM_ENABLED);
- String packageHref;
- if (isSinglePackage()) {
- packageHref = output.getPathToRoot() + "/" + getPackageURL(getSinglePackage()) + "package-summary" + filenameExtension;
- }
- else {
- packageHref = "package-summary" + filenameExtension;
- }
- output.beginAnchor(packageHref);
- output.print("Package");
- output.endAnchor();
- output.endSpan(CssClass.NAVBAR_ITEM_ENABLED);
- }
- }
- else {
- output.beginSpan(CssClass.NAVBAR_ITEM_DISABLED);
- output.print("Package");
- output.endSpan(CssClass.NAVBAR_ITEM_DISABLED);
- }
-
- if (optionUse.getValue() || optionLinkSource.getValue()) {
- output.print(" ");
-
- if (null != currentClass) {
- if ("class".equals(currentPage)) {
- output.beginSpan(CssClass.NAVBAR_ITEM_ACTIVE);
- output.print("Class");
- output.endSpan(CssClass.NAVBAR_ITEM_ACTIVE);
- }
- else {
- output.beginSpan(CssClass.NAVBAR_ITEM_ENABLED);
- output.beginAnchor(currentClass.name() + filenameExtension);
- output.print("Class");
- output.endAnchor();
- output.endSpan(CssClass.NAVBAR_ITEM_ENABLED);
- }
- }
- else {
- output.beginSpan(CssClass.NAVBAR_ITEM_DISABLED);
- output.print("Class");
- output.endSpan(CssClass.NAVBAR_ITEM_DISABLED);
- }
-
- if (optionUse.getValue()) {
- output.print(" ");
-
- if (null != currentClass) {
- if ("uses".equals(currentPage)) {
- output.beginSpan(CssClass.NAVBAR_ITEM_ACTIVE);
- output.print("Use");
- output.endSpan(CssClass.NAVBAR_ITEM_ACTIVE);
- }
- else {
- output.beginSpan(CssClass.NAVBAR_ITEM_ENABLED);
- output.beginAnchor(currentClass.name() + "-uses" + filenameExtension);
- output.print("Use");
- output.endAnchor();
- output.endSpan(CssClass.NAVBAR_ITEM_ENABLED);
- }
- }
- else {
- output.beginSpan(CssClass.NAVBAR_ITEM_DISABLED);
- output.print("Use");
- output.endSpan(CssClass.NAVBAR_ITEM_DISABLED);
- }
- }
-
- if (optionLinkSource.getValue()) {
- output.print(" ");
-
-
- if ("source".equals(currentPage)) {
- output.beginSpan(CssClass.NAVBAR_ITEM_ACTIVE);
- output.print("Source");
- output.endSpan(CssClass.NAVBAR_ITEM_ACTIVE);
- }
- else {
-
- if (null != currentClass) {
-
- output.beginSpan(CssClass.NAVBAR_ITEM_ENABLED);
- String targetClassName = currentClass.name();
- String targetAnchor = "";
- if (null != currentClass.containingClass()) {
- targetClassName = getOuterClassDoc(currentClass).name();
- targetAnchor = "#line." + currentClass.position().line();
- }
- output.beginAnchor(targetClassName + "-source" + filenameExtension + targetAnchor);
- output.print("Source");
- output.endAnchor();
- output.endSpan(CssClass.NAVBAR_ITEM_ENABLED);
- }
- else {
- output.beginSpan(CssClass.NAVBAR_ITEM_DISABLED);
- output.print("Source");
- output.endSpan(CssClass.NAVBAR_ITEM_DISABLED);
- }
- }
- }
- }
-
-
- if (!optionNoTree.getValue()) {
- output.print(" ");
-
- if ("full-tree".equals(currentPage)
- || "package-tree".equals(currentPage)) {
- output.beginSpan(CssClass.NAVBAR_ITEM_ACTIVE);
- output.print("Tree");
- output.endSpan(CssClass.NAVBAR_ITEM_ACTIVE);
- }
- else {
- output.beginSpan(CssClass.NAVBAR_ITEM_ENABLED);
- String treeHref;
- if (isSinglePackage() && overviewLevel) {
- treeHref = getPackageURL(getSinglePackage()) + "tree" + filenameExtension;
- }
- else {
- treeHref = "tree" + filenameExtension;
- }
-
- output.beginAnchor(treeHref);
- output.print("Tree");
- output.endAnchor();
- output.endSpan(CssClass.NAVBAR_ITEM_ENABLED);
- }
- }
-
- output.print(" ");
-
- String indexName;
- if (optionSplitIndex.getValue()) {
- indexName = "alphaindex-1";
- }
- else {
- indexName = "alphaindex";
- }
-
- if ("index".equals(currentPage) || "split-index".equals(currentPage)) {
- output.beginSpan(CssClass.NAVBAR_ITEM_ACTIVE);
- output.print("Index");
- output.endSpan(CssClass.NAVBAR_ITEM_ACTIVE);
- }
- else {
- output.beginSpan(CssClass.NAVBAR_ITEM_ENABLED);
- output.beginAnchor(output.getPathToRoot() + "/" + indexName + filenameExtension);
- output.print("Index");
- output.endAnchor();
- output.endSpan(CssClass.NAVBAR_ITEM_ENABLED);
- }
-
- if (!optionNoDeprecatedList.getValue()) {
- output.print(" ");
-
- if ("deprecated".equals(currentPage)) {
- output.beginSpan(CssClass.NAVBAR_ITEM_ACTIVE);
- output.print("Deprecated");
- output.endSpan(CssClass.NAVBAR_ITEM_ACTIVE);
- }
- else {
- output.beginSpan(CssClass.NAVBAR_ITEM_ENABLED);
- output.beginAnchor(output.getPathToRoot() + "/deprecated" + filenameExtension);
- output.print("Deprecated");
- output.endAnchor();
- output.endSpan(CssClass.NAVBAR_ITEM_ENABLED);
- }
- }
-
- if (outputHelpPage) {
- if (!optionNoHelp.getValue()) {
- output.print(" ");
-
- if ("help".equals(currentPage)) {
- output.beginSpan(CssClass.NAVBAR_ITEM_ACTIVE);
- output.print("Help");
- output.endSpan(CssClass.NAVBAR_ITEM_ACTIVE);
- }
- else {
- output.beginSpan(CssClass.NAVBAR_ITEM_ENABLED);
- output.beginAnchor(output.getPathToRoot() + "/help" + filenameExtension);
- output.print("Help");
- output.endAnchor();
- output.endSpan(CssClass.NAVBAR_ITEM_ENABLED);
- }
- }
- }
-
- output.print(" ");
-
- if ("about".equals(currentPage)) {
- output.beginSpan(CssClass.NAVBAR_ITEM_ACTIVE);
- output.print("About");
- output.endSpan(CssClass.NAVBAR_ITEM_ACTIVE);
- }
- else {
- output.beginSpan(CssClass.NAVBAR_ITEM_ENABLED);
- output.beginAnchor(output.getPathToRoot() + "/about" + filenameExtension);
- output.print("About");
- output.endAnchor();
- output.endSpan(CssClass.NAVBAR_ITEM_ENABLED);
- }
-
- output.endDiv(CssClass.NAVBAR_TOP);
- }
-
- private void printNavBarTopRow(HtmlPage output, String currentPage, ClassDoc currentClass)
- {
- output.beginRow();
- output.beginCell(CssClass.NAVBAR_TOP);
- printNavBar(output, currentPage, currentClass);
- output.endCell();
- if (null != optionHeader.getValue()) {
- output.beginCell(CssClass.NAVBAR_TOP_HEADER);
- output.print(replaceDocRoot(output, optionHeader.getValue()));
- output.endCell();
- }
- output.endRow();
- }
-
- private void printNavBarTopNaviCell(HtmlPage output)
- {
- output.beginCell(CssClass.NAVBAR_TOP_NAVI);
- output.beginAnchor(output.getPathToRoot() + "/index" + filenameExtension, "Show in a frameset", "_top");
- output.print("Frames");
- output.endAnchor();
- output.print(" | ");
-
- output.beginAnchor(output.getFile().getName(), "Show without frames", "_top");
- output.print("No Frames");
- output.endAnchor();
- output.print(" ");
-
- output.endCell();
- }
-
- private void printNavBarTop(HtmlPage output, String currentPage)
- {
- printNavBarTop(output, currentPage, null, null, null);
- }
-
- private void printNavBarTop(HtmlPage output, String currentPage,
- ClassDoc currentClass, Object prev, Object next)
- {
- if (!optionNoNavBar.getValue()) {
- output.beginTable(CssClass.NAVBAR_TOP);
- printNavBarTopRow(output, currentPage, currentClass);
- output.beginRow();
- if ("class".equals(currentPage)) {
- output.beginCell(CssClass.NAVBAR_TOP_NAVI);
- ClassDoc prevClass = (ClassDoc)prev;
- ClassDoc nextClass = (ClassDoc)next;
- if (null != prevClass) {
- output.anchor(getClassDocURL(output, prevClass), "Prev Class");
- }
- else {
- output.print("Prev Class");
- }
- output.print(" | ");
- if (null != nextClass) {
- output.anchor(getClassDocURL(output, nextClass), "Next Class");
- }
- else {
- output.print("Next Class");
- }
- output.endCell();
- }
- else if ("split-index".equals(currentPage)) {
- output.beginCell(CssClass.NAVBAR_TOP_NAVI);
- Integer prevLetter = (Integer)prev;
- Integer nextLetter = (Integer)next;
- if (null != prevLetter) {
- output.anchor("alphaindex-" + prevLetter + filenameExtension, "Prev Letter");
- }
- else {
- output.print("Prev Letter");
- }
- output.print(" | ");
- if (null != nextLetter) {
- output.anchor("alphaindex-" + nextLetter + filenameExtension, "Next Letter");
- }
- else {
- output.print("Next Letter");
- }
- output.endCell();
- }
- else {
- output.beginCell(CssClass.NAVBAR_TOP_NAVI);
- output.endCell();
- }
-
- printNavBarTopNaviCell(output);
- output.endRow();
-
- if ("class".equals(currentPage)) {
- output.beginRow();
-
- output.beginCell(CssClass.NAVBAR_TOP_NAVI);
- output.print("Summary: ");
-
- if (currentClass.innerClasses().length > 0) {
- output.anchor("#summary-inner", "Nested");
- }
- else {
- output.print("Nested");
- }
-
- output.print(" | ");
-
- if (currentClass.fields().length > 0) {
- output.anchor("#summary-fields", "Field");
- }
- else {
- output.print("Field");
- }
-
- output.print(" | ");
-
- if (currentClass.methods().length > 0) {
- output.anchor("#summary-methods", "Method");
- }
- else {
- output.print("Method");
- }
-
- output.print(" | ");
-
- if (currentClass.constructors().length > 0) {
- output.anchor("#summary-constructors", "Constr");
- }
- else {
- output.print("Constr");
- }
-
- output.endCell();
-
- output.beginCell(CssClass.NAVBAR_TOP_NAVI);
- output.print("Detail: ");
-
- if (currentClass.innerClasses().length > 0) {
- output.anchor("#detail-inner", "Nested");
- }
- else {
- output.print("Nested");
- }
-
- output.print(" | ");
-
- if (currentClass.fields().length > 0) {
- output.anchor("#detail-fields", "Field");
- }
- else {
- output.print("Field");
- }
-
- output.print(" | ");
-
- if (currentClass.methods().length > 0) {
- output.anchor("#detail-methods", "Method");
- }
- else {
- output.print("Method");
- }
-
- output.print(" | ");
-
- if (currentClass.constructors().length > 0) {
- output.anchor("#detail-constructors", "Constr");
- }
- else {
- output.print("Constr");
- }
-
- output.endCell();
- output.endRow();
- }
- output.endTable();
- }
- }
-
- private void printNavBarTopPackage(HtmlPage output, String currentPage,
- PackageDoc prevPackage, PackageDoc nextPackage)
- {
- if (!optionNoNavBar.getValue()) {
- output.beginTable(CssClass.NAVBAR_TOP);
- printNavBarTopRow(output, currentPage, null);
-
- output.beginRow();
- output.beginCell(CssClass.NAVBAR_TOP_NAVI);
- if (null != prevPackage) {
- output.anchor(output.getPathToRoot() + "/" + getPackageURL(prevPackage) + "package-summary" + filenameExtension, "Prev Package");
- }
- else {
- output.print("Prev Package");
- }
- output.print(" | ");
- if (null != nextPackage) {
- output.anchor(output.getPathToRoot() + "/" + getPackageURL(nextPackage) + "package-summary" + filenameExtension, "Next Package");
- }
- else {
- output.print("Next Package");
- }
- output.endCell();
-
- printNavBarTopNaviCell(output);
- output.endRow();
-
- output.endTable();
- }
- }
-
- private void printNavBarBottom(HtmlPage output, String currentPage)
- {
- printNavBarBottom(output, currentPage, null);
- }
-
- private void printNavBarBottom(HtmlPage output, String currentPage, ClassDoc currentClass)
- {
- if ("class".equals(currentPage)) {
- String boilerplate = null;
- Tag[] boilerplateTags = getOuterClassDoc(currentClass).tags("@boilerplate");
- if (boilerplateTags.length > 0) {
- boilerplate = boilerplateTags[0].text();
- }
- if (null != boilerplate) {
- output.hr();
- output.beginDiv(CssClass.CLASS_BOILERPLATE);
- output.print(boilerplate);
- output.endDiv(CssClass.CLASS_BOILERPLATE);
- output.hr();
- }
- }
-
- if (!optionNoNavBar.getValue()) {
- output.beginDiv(CssClass.NAVBAR_BOTTOM_SPACER);
- output.print(" ");
- output.endDiv(CssClass.NAVBAR_BOTTOM_SPACER);
- output.beginTable(CssClass.NAVBAR_BOTTOM);
- output.beginRow();
- output.beginCell();
- printNavBar(output, currentPage, currentClass);
- output.endCell();
- if (null != optionFooter.getValue()) {
- output.beginCell();
- output.print(replaceDocRoot(output, optionFooter.getValue()));
- output.endCell();
- }
- output.endRow();
- output.endTable();
- }
-
- if (null != optionBottom.getValue()) {
- output.hr();
- output.print(replaceDocRoot(output, optionBottom.getValue()));
- }
- }
-
- private void printPackagePageClasses(HtmlPage output, ClassDoc[] classDocs, String header)
- {
- if (classDocs.length > 0) {
- output.beginDiv(CssClass.TABLE_CONTAINER);
- output.beginTable(CssClass.PACKAGE_SUMMARY, new String[] { "border", "width" }, new String[] { "1", "100%" });
- output.rowDiv(CssClass.TABLE_HEADER, header);
-
- for (int i=0; i 0) {
- out.println(packageName);
- }
- }
-
- out.close();
- }
-
- private void printPackagePage(File packageDir, String pathToRoot,
- PackageDoc packageDoc,
- PackageDoc prevPackageDoc,
- PackageDoc nextPackageDoc)
- throws IOException
- {
- HtmlPage output = newHtmlPage(new File(packageDir, "package-summary" + filenameExtension),
- pathToRoot);
-
- Set keywords = new LinkedHashSet();
- keywords.add(packageDoc.name() + " packages");
-
- output.beginPage(getPageTitle(packageDoc.name()), getOutputCharset(),
- keywords, getStylesheets());
- output.beginBody(CssClass.BODY_CONTENT_PACKAGE);
- printNavBarTopPackage(output, "package", prevPackageDoc, nextPackageDoc);
-
- output.beginDiv(CssClass.PACKAGE_TITLE);
- output.print("Package ");
- if (packageDoc.name().length() > 0) {
- output.print(packageDoc.name());
- }
- else {
- output.print("<Unnamed>");
- }
- output.endDiv(CssClass.PACKAGE_TITLE);
-
- output.beginDiv(CssClass.PACKAGE_DESCRIPTION_TOP);
- printTags(output, packageDoc, packageDoc.firstSentenceTags(), true);
- output.endDiv(CssClass.PACKAGE_DESCRIPTION_TOP);
-
- printPackagePageClasses(output, packageDoc.interfaces(),
- "Interface Summary");
- printPackagePageClasses(output, packageDoc.ordinaryClasses(),
- "Class Summary");
- printPackagePageClasses(output, packageDoc.exceptions(),
- "Exception Summary");
- printPackagePageClasses(output, packageDoc.errors(),
- "Error Summary");
-
- output.anchorName("description");
- output.beginDiv(CssClass.PACKAGE_DESCRIPTION_FULL);
- printTags(output, packageDoc, packageDoc.inlineTags(), false);
- output.endDiv(CssClass.PACKAGE_DESCRIPTION_FULL);
-
- printNavBarBottom(output, "package");
- output.endBody();
- output.endPage();
- output.close();
- }
-
- static class TreeNode
- implements Comparable
- {
- ClassDoc classDoc;
- SortedSet children = new TreeSet();
-
- TreeNode(ClassDoc classDoc) {
- TreeNode.this.classDoc = classDoc;
- }
-
- public boolean equals(Object other)
- {
- return classDoc.equals(((TreeNode)other).classDoc);
- }
-
- public int compareTo(TreeNode other)
- {
- return classDoc.compareTo(other.classDoc);
- }
-
- public int hashCode()
- {
- return classDoc.hashCode();
- }
- }
-
- private TreeNode addClassTreeNode(Map treeMap, ClassDoc classDoc)
- {
- TreeNode node = treeMap.get(classDoc.qualifiedName());
- if (null == node) {
- node = new TreeNode(classDoc);
- treeMap.put(classDoc.qualifiedName(), node);
-
- ClassDoc superClassDoc = (ClassDoc)classDoc.superclass();
- if (null != superClassDoc) {
- TreeNode parentNode = addClassTreeNode(treeMap, superClassDoc);
- parentNode.children.add(node);
- }
- }
- return node;
- }
-
- private TreeNode addInterfaceTreeNode(Map treeMap, ClassDoc classDoc)
- {
- TreeNode node = treeMap.get(classDoc.qualifiedName());
- if (null == node) {
- node = new TreeNode(classDoc);
- treeMap.put(classDoc.qualifiedName(), node);
-
- ClassDoc[] superInterfaces = classDoc.interfaces();
- if (null != superInterfaces && superInterfaces.length > 0) {
- for (int i=0; i");
- if (null == rootNode) {
- rootNode = new TreeNode(null);
- treeMap.put("", rootNode);
- }
- rootNode.children.add(node);
- }
- }
- return node;
- }
-
- private void printPackageTreeRec(HtmlPage output, TreeNode node, TreeNode parentNode)
- {
- output.beginElement("li", "class", "node");
- output.beginElement("div");
- if (node.classDoc.isIncluded()) {
- String packageName = node.classDoc.containingPackage().name();
- if (packageName.length() > 0) {
- output.print(packageName);
- output.print(".");
- }
- output.beginSpan(CssClass.TREE_LINK);
- printType(output, node.classDoc);
- output.endSpan(CssClass.TREE_LINK);
- }
- else {
- output.print(possiblyQualifiedName(node.classDoc));
- }
- ClassDoc[] interfaces = node.classDoc.interfaces();
- ClassDoc parentClassDoc = null;
- if (null != parentNode) {
- parentClassDoc = parentNode.classDoc;
- }
- if (interfaces.length > 0
- && !(interfaces.length == 1 && interfaces[0].equals(parentClassDoc))) {
- if (node.classDoc.isInterface()) {
- output.print(" (also implements ");
- }
- else {
- output.print(" (implements ");
- }
-
- boolean firstItem = true;
- for (int i=0; i it = node.children.iterator();
- while (it.hasNext()) {
- printPackageTreeRec(output, it.next(), node);
- }
- output.endElement("ul");
- output.endElement("li");
- }
- }
-
- private void printClassTree(HtmlPage output, ClassDoc[] classDocs)
- {
- Map classTreeMap = new HashMap();
-
- for (int i=0; i interfaceTreeMap = new HashMap();
-
- for (int i=0; i");
- if (null != interfaceRoot) {
- Iterator it = interfaceRoot.children.iterator();
- if (it.hasNext()) {
- output.div(CssClass.PACKAGE_TREE_SECTION_TITLE, "Interface Hierarchy");
- output.beginDiv(CssClass.PACKAGE_TREE);
- while (it.hasNext()) {
- TreeNode node = it.next();
- printPackageTreeRec(output, node, null);
- }
- output.endDiv(CssClass.PACKAGE_TREE);
- }
- }
-
- }
-
- private void printPackageTreePage(File packageDir, String pathToRoot, PackageDoc packageDoc)
- throws IOException
- {
- HtmlPage output = newHtmlPage(new File(packageDir,
- "tree" + filenameExtension),
- pathToRoot);
- output.beginPage(getPageTitle(packageDoc.name() + " Hierarchy"),
- getOutputCharset(),
- getStylesheets());
- output.beginBody(CssClass.BODY_CONTENT_PACKAGE_TREE);
- printNavBarTop(output, "package-tree");
-
- output.div(CssClass.PACKAGE_TREE_TITLE, "Hierarchy for Package " + packageDoc.name());
-
- ClassDoc[] classDocs = packageDoc.allClasses();
- printClassTree(output, classDocs);
- printInterfaceTree(output, classDocs);
-
- printNavBarBottom(output, "package-tree");
- output.endBody();
- output.endPage();
- output.close();
- }
-
- private void printFullTreePage()
- throws IOException
- {
- HtmlPage output = newHtmlPage(new File(getTargetDirectory(),
- "tree" + filenameExtension),
- ".");
- output.beginPage(getPageTitle("Hierarchy"),
- getOutputCharset(),
- getStylesheets());
- output.beginBody(CssClass.BODY_CONTENT_FULL_TREE);
- printNavBarTop(output, "full-tree");
-
- output.div(CssClass.PACKAGE_TREE_TITLE, "Hierarchy for All Packages");
-
- output.beginDiv(CssClass.FULL_TREE_PACKAGELIST);
- output.div(CssClass.FULL_TREE_PACKAGELIST_HEADER, "Package Hierarchies:");
- output.beginDiv(CssClass.FULL_TREE_PACKAGELIST_ITEM);
- Set allPackages = getAllPackages();
- Iterator it = allPackages.iterator();
- while (it.hasNext()) {
- PackageDoc packageDoc = it.next();
- output.beginAnchor(getPackageURL(packageDoc) + "tree" + filenameExtension);
- output.print(packageDoc.name());
- output.endAnchor();
- if (it.hasNext()) {
- output.print(", ");
- }
- }
- output.endDiv(CssClass.FULL_TREE_PACKAGELIST_ITEM);
- output.endDiv(CssClass.FULL_TREE_PACKAGELIST);
-
- ClassDoc[] classDocs = getRootDoc().classes();
- printClassTree(output, classDocs);
- printInterfaceTree(output, classDocs);
-
- printNavBarBottom(output, "full-tree");
- output.endBody();
- output.endPage();
- output.close();
- }
-
- private void printIndexEntry(HtmlPage output, Doc entry)
- {
- output.beginDiv(CssClass.INDEX_ENTRY);
- output.beginDiv(CssClass.INDEX_ENTRY_KEY);
- if (entry instanceof PackageDoc) {
- output.beginAnchor(getPackageURL((PackageDoc)entry) + "package-summary" + filenameExtension);
- output.print(entry.name());
- output.endAnchor();
- output.print(" - package");
- }
- else if (entry instanceof ClassDoc) {
- ClassDoc classDoc = (ClassDoc)entry;
- output.beginAnchor(getClassURL(classDoc));
- output.print(entry.name() + getTypeParameters(classDoc));
- output.endAnchor();
- output.print(" - ");
- if (entry.isInterface()) {
- output.print("interface ");
- }
- else if (entry.isException()) {
- output.print("exception ");
- }
- else if (entry.isError()) {
- output.print("error ");
- }
- else {
- output.print("class ");
- }
- String packageName = classDoc.containingPackage().name();
- if (packageName.length() > 0) {
- output.print(packageName);
- output.print(".");
- }
- printType(output, classDoc);
- }
- else {
- ProgramElementDoc memberDoc = (ProgramElementDoc)entry;
- output.beginAnchor(getMemberDocURL(output, memberDoc));
- output.print(entry.name());
- if (memberDoc instanceof ExecutableMemberDoc) {
- output.print(((ExecutableMemberDoc)memberDoc).signature());
- }
- output.endAnchor();
- output.print(" - ");
-
- if (memberDoc.isStatic()) {
- output.print("static ");
- }
-
- if (entry.isConstructor()) {
- output.print("constructor for class ");
- }
- else if (entry.isMethod()) {
- output.print("method in class ");
- }
- else if (entry.isField()) {
- output.print("field in class ");
- }
- ClassDoc containingClass = memberDoc.containingClass();
- String packageName = containingClass.containingPackage().name();
- if (packageName.length() > 0) {
- output.print(packageName);
- output.print(".");
- }
- printType(output, containingClass);
- }
- output.endDiv(CssClass.INDEX_ENTRY_KEY);
- output.beginDiv(CssClass.INDEX_ENTRY_DESCRIPTION);
- printTags(output, entry, entry.firstSentenceTags(), true);
- output.endDiv(CssClass.INDEX_ENTRY_DESCRIPTION);
- output.endDiv(CssClass.INDEX_ENTRY);
- }
-
- private void printFrameSetPage()
- throws IOException
- {
- HtmlPage output = newHtmlPage(new File(getTargetDirectory(),
- "index" + filenameExtension),
- ".",
- HtmlPage.DOCTYPE_FRAMESET);
-
- String title = getWindowTitle();
- output.beginPage(title, getOutputCharset(), getStylesheets());
- output.beginElement("frameset", "cols", "20%,80%");
-
- String contentURL;
- if (isSinglePackage()) {
- output.atomicElement("frame",
- new String[] { "src", "name" },
- new String[] { getPackageURL(getSinglePackage()) + "classes" + filenameExtension, "classes" });
- contentURL = getPackageURL(getSinglePackage()) + "package-summary.html";
- }
- else {
- output.beginElement("frameset", "rows", "25%,75%");
- output.atomicElement("frame",
- new String[] { "src", "name" },
- new String[] { "all-packages" + filenameExtension, "packages" });
- output.atomicElement("frame",
- new String[] { "src", "name" },
- new String[] { "all-classes" + filenameExtension, "classes" });
- output.endElement("frameset");
- contentURL = "overview-summary" + filenameExtension;
- }
- output.atomicElement("frame",
- new String[] { "src", "name" },
- new String[] { contentURL, "content" });
- output.endElement("frameset");
- output.endPage();
- output.close();
- }
-
- private void printPackagesMenuPage()
- throws IOException
- {
- HtmlPage output = newHtmlPage(new File(getTargetDirectory(),
- "all-packages" + filenameExtension),
- ".");
- output.beginPage(getPageTitle("Package Menu"), getOutputCharset(), getStylesheets());
- output.beginBody(CssClass.BODY_MENU_PACKAGES, false);
-
- output.beginSpan(CssClass.PACKAGE_MENU_ENTRY);
- output.beginAnchor("all-classes" + filenameExtension,
- null,
- "classes");
- output.print("All Classes");
- output.endAnchor();
- output.endSpan(CssClass.PACKAGE_MENU_ENTRY);
-
- output.div(CssClass.PACKAGE_MENU_TITLE, "Packages");
-
- output.beginDiv(CssClass.PACKAGE_MENU_LIST);
-
- Set packageDocs = getAllPackages();
- Iterator it = packageDocs.iterator();
- while (it.hasNext()) {
- PackageDoc packageDoc = it.next();
- output.beginSpan(CssClass.PACKAGE_MENU_ENTRY);
- output.beginAnchor(getPackageURL(packageDoc) + "classes" + filenameExtension,
- null,
- "classes");
- if (packageDoc.name().length() > 0) {
- output.print(packageDoc.name());
- }
- else {
- output.print("<unnamed package>");
- }
- output.endAnchor();
- output.endSpan(CssClass.PACKAGE_MENU_ENTRY);
- output.br();
- }
-
- output.endDiv(CssClass.PACKAGE_MENU_LIST);
- output.endBody();
- output.endPage();
- output.close();
- }
-
- private void printClassMenuEntry(HtmlPage output, ClassDoc classDoc)
- {
- CssClass entryClass;
- if (classDoc.isInterface()) {
- entryClass = CssClass.CLASS_MENU_ENTRY_INTERFACE;
- }
- else {
- entryClass = CssClass.CLASS_MENU_ENTRY_CLASS;
- }
- output.beginSpan(entryClass);
- output.beginAnchor(getClassDocURL(output, classDoc),
- classDoc.qualifiedTypeName(),
- "content");
- output.print(classDoc.name());
- output.endAnchor();
- output.endSpan(entryClass);
- output.br();
- }
-
- private void printClassMenuSection(HtmlPage output, Collection classDocs, String header)
- {
- if (!classDocs.isEmpty()) {
- output.div(CssClass.CLASS_MENU_SUBTITLE, header);
- Iterator it = classDocs.iterator();
- while (it.hasNext()) {
- ClassDoc classDoc = it.next();
- printClassMenuEntry(output, classDoc);
- }
- }
- }
-
- private void printClassMenuList(HtmlPage output, ClassDoc[] classDocs, boolean categorized)
- {
- output.beginDiv(CssClass.CLASS_MENU_LIST);
-
- if (categorized) {
- Set classes = new TreeSet();
- Set interfaces = new TreeSet();
- Set exceptions = new TreeSet();
- Set errors = new TreeSet();
-
- for (int i=0; i 0) {
- output.print(packageDoc.name());
- }
- else {
- output.print("<Unnamed>");
- }
- output.endAnchor();
- output.endDiv(CssClass.CLASS_MENU_TITLE);
-
- printClassMenuList(output, packageDoc.allClasses(), true);
-
- output.endBody();
- output.endPage();
- output.close();
- }
-
- private void printSplitIndex()
- throws IOException
- {
- Map> categorizedIndex = getCategorizedIndex();
- Iterator it = categorizedIndex.keySet().iterator();
- int n = 1;
- int count = categorizedIndex.size();
- while (it.hasNext()) {
- Character c = it.next();
- List classList = categorizedIndex.get(c);
- printIndexPage(n++, count, c, classList);
- }
- }
-
- private void printIndexPage()
- throws IOException
- {
- printIndexPage(0, 0, null, null);
- }
-
- private void printIndexPage(int index, int maxIndex, Character letter, List classList)
- throws IOException
- {
- String pageName = "alphaindex";
- if (null != letter) {
- pageName += "-" + index;
- }
- HtmlPage output = newHtmlPage(new File(getTargetDirectory(),
- pageName + filenameExtension),
- ".");
- output.beginPage(getPageTitle("Alphabetical Index"),
- getOutputCharset(),
- getStylesheets());
- output.beginBody(CssClass.BODY_CONTENT_INDEX);
- if (null == letter) {
- printNavBarTop(output, "index");
- }
- else {
- printNavBarTop(output, "split-index", null,
- (index > 1) ? new Integer(index - 1) : null,
- (index < maxIndex) ? new Integer(index + 1) : null);
- }
-
- {
- String title;
- if (null == letter) {
- title = "Alphabetical Index";
- }
- else {
- title = "Alphabetical Index: " + letter;
- }
- output.div(CssClass.INDEX_TITLE, title);
-
- if (null != letter || getCategorizedIndex().keySet().size() > 1) {
- output.beginDiv(CssClass.INDEX_LETTERS);
-
- Iterator it = getCategorizedIndex().keySet().iterator();
- int n = 1;
- while (it.hasNext()) {
- Character c = (Character)it.next();
- output.beginSpan(CssClass.INDEX_LETTER);
- if (letter != null) {
- output.beginAnchor("alphaindex-" + n + filenameExtension);
- }
- else {
- output.beginAnchor("#" + c);
- }
- output.print(c.toString());
- output.endAnchor();
- output.endSpan(CssClass.INDEX_LETTER);
- output.beginSpan(CssClass.INDEX_LETTER_SPACER);
- output.print(" ");
- output.endSpan(CssClass.INDEX_LETTER_SPACER);
- ++n;
- }
- }
-
- output.endDiv(CssClass.INDEX_LETTERS);
- }
-
- if (null != letter) {
- printIndexCategory(output, letter, classList);
- }
- else {
- Map> categorizedIndex = getCategorizedIndex();
- Iterator categoryIt = categorizedIndex.keySet().iterator();
-
- while (categoryIt.hasNext()) {
- letter = categoryIt.next();
- classList = categorizedIndex.get(letter);
- output.anchorName(letter.toString());
- printIndexCategory(output, letter, classList);
- }
- }
-
- printNavBarBottom(output, "index");
- output.endBody();
- output.endPage();
- output.close();
- }
-
- private void printIndexCategory(HtmlPage output, Character letter, List classList)
- {
- Iterator it = classList.iterator();
-
- output.div(CssClass.INDEX_CATEGORY_HEADER, letter.toString());
- output.beginDiv(CssClass.INDEX_CATEGORY);
- while (it.hasNext()) {
- Doc entry = (Doc)it.next();
- printIndexEntry(output, entry);
- }
- output.endDiv(CssClass.INDEX_CATEGORY);
- }
-
- private void printDeprecationSummary(HtmlPage output, List docs, String header)
- {
- if (!docs.isEmpty()) {
- output.beginDiv(CssClass.TABLE_CONTAINER);
- output.beginTable(CssClass.DEPRECATION_SUMMARY, new String[] { "border", "width" }, new String[] { "1", "100%" });
- output.rowDiv(CssClass.TABLE_HEADER, header);
-
- Iterator it = docs.iterator();
- while (it.hasNext()) {
- Doc doc = (Doc)it.next();
- output.beginRow();
-
- output.beginCell(CssClass.DEPRECATION_SUMMARY_LEFT);
- if (doc instanceof Type) {
- printType(output, (Type)doc);
- }
- else {
- ProgramElementDoc memberDoc = (ProgramElementDoc)doc;
- output.beginAnchor(getMemberDocURL(output, memberDoc));
- output.print(memberDoc.containingClass().qualifiedName());
- output.print(".");
- output.print(memberDoc.name());
- if (memberDoc instanceof ExecutableMemberDoc) {
- output.print(((ExecutableMemberDoc)memberDoc).flatSignature());
- }
- output.endAnchor();
- }
- output.beginDiv(CssClass.DEPRECATION_SUMMARY_DESCRIPTION);
- printTags(output, doc, doc.tags("deprecated")[0].firstSentenceTags(), true);
- output.endDiv(CssClass.DEPRECATION_SUMMARY_DESCRIPTION);
-
- output.endCell();
-
- output.endRow();
- }
- output.endTable();
- output.endDiv(CssClass.TABLE_CONTAINER);
- output.print("\n");
- }
- }
-
-
- private void printSerializationPage()
- throws IOException
- {
- HtmlPage output = newHtmlPage(new File(getTargetDirectory(),
- "serialized-form" + filenameExtension),
- ".");
- output.beginPage(getPageTitle("Serialized Form"),
- getOutputCharset(),
- getStylesheets());
- output.beginBody(CssClass.BODY_CONTENT_DEPRECATED);
- printNavBarTop(output, "serialized");
-
- output.div(CssClass.SERIALIZED_TITLE, "Serialized Form");
-
- Iterator it = getAllPackages().iterator();
-
- while (it.hasNext()) {
-
- PackageDoc packageDoc = it.next();
-
- List serializableClasses = new LinkedList();
- ClassDoc[] classes = packageDoc.allClasses();
- for (int i=0; i cit = serializableClasses.iterator();
- while (cit.hasNext()) {
- ClassDoc classDoc = cit.next();
-
- output.anchorName(classDoc.qualifiedTypeName());
-
- output.beginDiv(CssClass.SERIALIZED_CLASS_HEADER);
- output.print("Class ");
- printType(output, classDoc, true);
- output.print(" extends ");
- printType(output, classDoc.superclass());
- output.print(" implements Serializable");
- output.endDiv(CssClass.SERIALIZED_CLASS_HEADER);
-
- FieldDoc serialVersionUidField = findField(classDoc, "serialVersionUID");
- if (null != serialVersionUidField
- && serialVersionUidField.isFinal()
- && serialVersionUidField.isStatic()
- && serialVersionUidField.type().typeName().equals("long")) {
-
- String fieldValue = serialVersionUidField.constantValueExpression();
- if (null != fieldValue) {
- output.beginDiv(CssClass.SERIALIZED_SVUID_OUTER);
- output.span(CssClass.SERIALIZED_SVUID_HEADER, "serialVersionUID: ");
- output.span(CssClass.SERIALIZED_SVUID_VALUE, fieldValue);
- output.endDiv(CssClass.SERIALIZED_SVUID_OUTER);
- }
- }
- printMemberDetails(output,
- classDoc.serializationMethods(),
- "Serialization Methods",
- true, null);
- printMemberDetails(output,
- classDoc.serializableFields(),
- "Serialized Fields",
- true, null);
- }
- }
- }
-
- printNavBarBottom(output, "serialized");
-
- output.endBody();
- output.endPage();
- output.close();
- }
-
-
- private void printDeprecationPage()
- throws IOException
- {
- HtmlPage output = newHtmlPage(new File(getTargetDirectory(),
- "deprecated" + filenameExtension),
- ".");
- output.beginPage(getPageTitle("Deprecated API"),
- getOutputCharset(),
- getStylesheets());
- output.beginBody(CssClass.BODY_CONTENT_DEPRECATED);
- printNavBarTop(output, "deprecated");
-
- output.div(CssClass.DEPRECATION_TITLE, "Deprecated API");
-
- List deprecatedInterfaces = new LinkedList();
- List deprecatedExceptions = new LinkedList();
- List deprecatedErrors = new LinkedList();
- List deprecatedClasses = new LinkedList();
- List deprecatedFields = new LinkedList();
- List deprecatedMethods = new LinkedList();
- List deprecatedConstructors = new LinkedList();
-
- ClassDoc[] classDocs = getRootDoc().classes();
- for (int i=0; i 0) {
- if (classDoc.isInterface()) {
- deprecatedInterfaces.add(classDoc);
- }
- else if (classDoc.isException()) {
- deprecatedExceptions.add(classDoc);
- }
- else if (classDoc.isError()) {
- deprecatedErrors.add(classDoc);
- }
- else {
- deprecatedClasses.add(classDoc);
- }
- }
- }
- ConstructorDoc[] constructors = classDoc.constructors();
- for (int j=0; j 0) {
- deprecatedConstructors.add(constructors[j]);
- }
- }
- MethodDoc[] methods = classDoc.methods();
- for (int j=0; j 0) {
- deprecatedMethods.add(methods[j]);
- }
- }
- FieldDoc[] fields = classDoc.fields();
- for (int j=0; j 0) {
- deprecatedFields.add(fields[j]);
- }
- }
- }
-
- if (!deprecatedInterfaces.isEmpty()
- || !deprecatedClasses.isEmpty()
- || !deprecatedExceptions.isEmpty()
- || !deprecatedErrors.isEmpty()
- || !deprecatedFields.isEmpty()
- || !deprecatedMethods.isEmpty()
- || !deprecatedConstructors.isEmpty()) {
-
- output.beginDiv(CssClass.DEPRECATION_TOC);
- output.div(CssClass.DEPRECATION_TOC_HEADER, "Contents");
- output.beginDiv(CssClass.DEPRECATION_TOC_LIST);
- if (!deprecatedInterfaces.isEmpty()) {
- output.beginDiv(CssClass.DEPRECATION_TOC_ENTRY);
- output.anchor("#interfaces", "Deprecated Interfaces");
- output.endDiv(CssClass.DEPRECATION_TOC_ENTRY);
- }
- if (!deprecatedClasses.isEmpty()) {
- output.beginDiv(CssClass.DEPRECATION_TOC_ENTRY);
- output.anchor("#classes", "Deprecated Classes");
- output.endDiv(CssClass.DEPRECATION_TOC_ENTRY);
- }
- if (!deprecatedExceptions.isEmpty()) {
- output.beginDiv(CssClass.DEPRECATION_TOC_ENTRY);
- output.anchor("#exceptions", "Deprecated Exceptions");
- output.endDiv(CssClass.DEPRECATION_TOC_ENTRY);
- }
- if (!deprecatedErrors.isEmpty()) {
- output.beginDiv(CssClass.DEPRECATION_TOC_ENTRY);
- output.anchor("#errors", "Deprecated Errors");
- output.endDiv(CssClass.DEPRECATION_TOC_ENTRY);
- }
- if (!deprecatedFields.isEmpty()) {
- output.beginDiv(CssClass.DEPRECATION_TOC_ENTRY);
- output.anchor("#fields", "Deprecated Fields");
- output.endDiv(CssClass.DEPRECATION_TOC_ENTRY);
- }
- if (!deprecatedMethods.isEmpty()) {
- output.beginDiv(CssClass.DEPRECATION_TOC_ENTRY);
- output.anchor("#methods", "Deprecated Methods");
- output.endDiv(CssClass.DEPRECATION_TOC_ENTRY);
- }
- if (!deprecatedConstructors.isEmpty()) {
- output.beginDiv(CssClass.DEPRECATION_TOC_ENTRY);
- output.anchor("#constructors", "Deprecated Constructors");
- output.endDiv(CssClass.DEPRECATION_TOC_ENTRY);
- }
- output.endDiv(CssClass.DEPRECATION_TOC_LIST);
- output.endDiv(CssClass.DEPRECATION_TOC);
- output.beginDiv(CssClass.DEPRECATION_LIST);
-
- output.anchorName("interfaces");
- printDeprecationSummary(output, deprecatedInterfaces, "Deprecated Interfaces");
-
- output.anchorName("classes");
- printDeprecationSummary(output, deprecatedClasses, "Deprecated Classes");
-
- output.anchorName("exceptions");
- printDeprecationSummary(output, deprecatedExceptions, "Deprecated Exceptions");
-
- output.anchorName("errors");
- printDeprecationSummary(output, deprecatedErrors, "Deprecated Errors");
-
- output.anchorName("fields");
- printDeprecationSummary(output, deprecatedFields, "Deprecated Fields");
-
- output.anchorName("methods");
- printDeprecationSummary(output, deprecatedMethods, "Deprecated Methods");
-
- output.anchorName("constructors");
- printDeprecationSummary(output, deprecatedConstructors, "Deprecated Constructors");
-
- output.endDiv(CssClass.DEPRECATION_LIST);
- }
- else {
- output.beginDiv(CssClass.DEPRECATION_EMPTY);
- output.print("No deprecated classes or class members in this API.");
- output.endDiv(CssClass.DEPRECATION_EMPTY);
-
- }
-
- printNavBarBottom(output, "deprecated");
- output.endBody();
- output.endPage();
- output.close();
- }
-
- private void printAboutPage()
- throws IOException
- {
- HtmlPage output = newHtmlPage(new File(getTargetDirectory(),
- "about" + filenameExtension),
- ".");
- output.beginPage(getPageTitle("About"),
- getOutputCharset(),
- getStylesheets());
- output.beginBody(CssClass.BODY_CONTENT_ABOUT);
-
- printNavBarTop(output, "about");
-
- output.div(CssClass.ABOUT_TITLE, "About");
-
- output.beginDiv(CssClass.ABOUT_GENERATOR);
- output.print("Generated by ");
- output.print("Gjdoc");
- output.print(" HtmlDoclet ");
- output.print(getDocletVersion());
- output.print(", part of ");
- output.beginAnchor("http://www.gnu.org/software/classpath/cp-tools/", "", "_top");
- output.print("GNU Classpath Tools");
- output.endAnchor();
- output.print(", on ");
- DateFormat format = DateFormat.getDateTimeInstance(DateFormat.LONG,
- DateFormat.LONG,
- Locale.US);
- Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("UTC"),
- Locale.US);
- format.setCalendar(cal);
- output.print(format.format(new Date()));
- output.print(".");
- output.endDiv(CssClass.ABOUT_GENERATOR);
-
- printNavBarBottom(output, "about");
-
- output.endBody();
- output.endPage();
- output.close();
- }
-
- private void printSourcePage(File packageDir, ClassDoc classDoc, String sourceXhtml)
- throws IOException
- {
- HtmlPage output = newHtmlPage(new File(packageDir,
- classDoc.name() + "-source" + filenameExtension),
- getPathToRoot(packageDir, getTargetDirectory()));
- output.beginPage(getPageTitle("Source for " + classDoc.qualifiedTypeName()),
- getOutputCharset(),
- getStylesheets());
-
- output.beginBody(CssClass.BODY_CONTENT_SOURCE);
-
- printNavBarTop(output, "source", classDoc, null, null);
-
- output.div(CssClass.SOURCE_TITLE, "Source for " + classDoc.qualifiedTypeName());
- output.beginDiv(CssClass.SOURCE);
- output.print(sourceXhtml);
- output.endDiv(CssClass.SOURCE);
-
- printNavBarBottom(output, "source", classDoc);
-
- output.endBody();
- output.endPage();
-
- output.close();
- }
-
- private void printHelpPage()
- throws IOException
- {
- HtmlPage output = newHtmlPage(new File(getTargetDirectory(),
- "help" + filenameExtension),
- ".");
- output.beginPage(getPageTitle("Help"),
- getOutputCharset(),
- getStylesheets());
- output.beginBody(CssClass.BODY_CONTENT_HELP);
-
- printNavBarTop(output, "help");
-
- InputStream helpIn;
- if (null != optionHelpFile.getValue()){
- helpIn = new FileInputStream(optionHelpFile.getValue());
- }
- else {
- helpIn = getClass().getResourceAsStream("/htmldoclet/help.xhtml");
- }
- output.insert(new InputStreamReader(helpIn, "utf-8"));
- helpIn.close();
-
- printNavBarBottom(output, "help");
-
- output.endBody();
- output.endPage();
- output.close();
- }
-
- private void printOverviewPage()
- throws IOException
- {
- HtmlPage output = newHtmlPage(new File(getTargetDirectory(),
- "overview-summary" + filenameExtension),
- ".");
- output.beginPage(getWindowTitle(),
- getOutputCharset(),
- getStylesheets());
- output.beginBody(CssClass.BODY_CONTENT_OVERVIEW);
-
- printNavBarTop(output, "overview");
-
- String overviewHeader;
- if (null != optionDocTitle.getValue()) {
- overviewHeader = optionDocTitle.getValue();
- }
- else if (null != optionTitle.getValue()) {
- overviewHeader = optionTitle.getValue();
- }
- else {
- overviewHeader = null;
- }
-
- if (null != overviewHeader) {
- output.div(CssClass.OVERVIEW_TITLE, overviewHeader);
- }
-
- output.beginDiv(CssClass.OVERVIEW_DESCRIPTION_TOP);
- printTags(output, getRootDoc(), getRootDoc().firstSentenceTags(), true);
- output.endDiv(CssClass.OVERVIEW_DESCRIPTION_TOP);
-
- List packageGroups = getPackageGroups();
-
- if (packageGroups.isEmpty()) {
-
- printOverviewPackages(output, getAllPackages(),
- "All Packages");
- }
- else {
- Set otherPackages = new LinkedHashSet();
- otherPackages.addAll(getAllPackages());
-
- Iterator it = packageGroups.iterator();
- while (it.hasNext()) {
- PackageGroup packageGroup = (PackageGroup)it.next();
- printOverviewPackages(output,
- packageGroup.getPackages(),
- packageGroup.getName());
- otherPackages.removeAll(packageGroup.getPackages());
- }
-
- if (!otherPackages.isEmpty()) {
- printOverviewPackages(output,
- otherPackages,
- "Other Packages");
- }
- }
-
- output.anchorName("description");
- output.beginDiv(CssClass.OVERVIEW_DESCRIPTION_FULL);
- printTags(output, getRootDoc(), getRootDoc().inlineTags(), false);
- output.endDiv(CssClass.OVERVIEW_DESCRIPTION_FULL);
-
- printNavBarBottom(output, "overview");
- output.endBody();
- output.endPage();
- output.close();
- }
-
- private void printOverviewPackages(HtmlPage output, Collection packageDocs, String header)
- {
- output.beginDiv(CssClass.TABLE_CONTAINER);
- output.beginTable(CssClass.OVERVIEW_SUMMARY, new String[] { "border", "width" }, new String[] { "1", "100%" });
- output.rowDiv(CssClass.TABLE_HEADER, header);
-
- Iterator it = packageDocs.iterator();
- while (it.hasNext()) {
- PackageDoc packageDoc = (PackageDoc)it.next();
- output.beginRow();
-
- output.beginCell(CssClass.OVERVIEW_SUMMARY_LEFT);
- output.beginAnchor(getPackageURL(packageDoc) + "package-summary" + filenameExtension);
- output.print(packageDoc.name());
- output.endAnchor();
- output.endCell();
-
- output.beginCell(CssClass.OVERVIEW_SUMMARY_RIGHT);
- printTags(output, packageDoc, packageDoc.firstSentenceTags(), true);
- output.endCell();
- output.endRow();
- }
- output.endTable();
- output.endDiv(CssClass.TABLE_CONTAINER);
- }
-
- private void printClassUsagePage(File packageDir, String pathToRoot, ClassDoc classDoc)
- throws IOException
- {
- HtmlPage output = newHtmlPage(new File(packageDir,
- classDoc.name() + "-uses" + filenameExtension),
- pathToRoot);
- output.beginPage(getPageTitle(classDoc.name()), getOutputCharset(), getStylesheets());
- output.beginBody(CssClass.BODY_CONTENT_USES);
- printNavBarTop(output, "uses", classDoc, null, null);
-
- output.div(CssClass.USAGE_TITLE,
- "Uses of " + getClassTypeName(classDoc)
- + " " + classDoc.qualifiedName());
-
- Map packageToUsageTypeMap = getUsageOfClass(classDoc);
- if (null != packageToUsageTypeMap && !packageToUsageTypeMap.isEmpty()) {
-
- Iterator packagesIterator = packageToUsageTypeMap.keySet().iterator();
- while (packagesIterator.hasNext()) {
- PackageDoc packageDoc = (PackageDoc)packagesIterator.next();
-
- output.div(CssClass.USAGE_PACKAGE_TITLE, "Uses in package " + packageDoc.name());
-
- Map usageTypeToUsersMap = (Map)packageToUsageTypeMap.get(packageDoc);
- Iterator usageTypeIterator = usageTypeToUsersMap.keySet().iterator();
- while (usageTypeIterator.hasNext()) {
- UsageType usageType = (UsageType)usageTypeIterator.next();
-
- output.beginTable(CssClass.USAGE_SUMMARY, new String[] { "border", "width" }, new String[] { "1", "100%" });
- output.rowDiv(CssClass.USAGE_TABLE_HEADER, format("usagetype." + usageType.getId(),
- classDoc.qualifiedName()));
-
- Set users = (Set)usageTypeToUsersMap.get(usageType);
- Iterator userIterator = users.iterator();
- while (userIterator.hasNext()) {
- Doc user = (Doc)userIterator.next();
-
- output.beginRow();
-
- if (user instanceof ClassDoc) {
- output.beginCell(CssClass.USAGE_SUMMARY_LEFT);
- output.print("class");
- output.endCell();
-
- output.beginCell(CssClass.USAGE_SUMMARY_RIGHT);
- output.beginDiv(CssClass.USAGE_SUMMARY_SYNOPSIS);
- printType(output, ((ClassDoc)user));
- output.endDiv(CssClass.USAGE_SUMMARY_SYNOPSIS);
- output.beginDiv(CssClass.USAGE_SUMMARY_DESCRIPTION);
- printTags(output, ((ClassDoc)user), ((ClassDoc)user).firstSentenceTags(), true);
- output.endDiv(CssClass.USAGE_SUMMARY_DESCRIPTION);
- output.endCell();
- }
- else if (user instanceof FieldDoc) {
- FieldDoc fieldDoc = (FieldDoc)user;
-
- output.beginCell(CssClass.USAGE_SUMMARY_LEFT);
- printType(output, ((FieldDoc)user).type());
- output.endCell();
-
- output.beginCell(CssClass.USAGE_SUMMARY_RIGHT);
- output.beginDiv(CssClass.USAGE_SUMMARY_SYNOPSIS);
- printType(output, ((FieldDoc)user).containingClass());
- output.print(".");
- output.beginAnchor(getMemberDocURL(output, (FieldDoc)user));
- output.print(((FieldDoc)user).name());
- output.endAnchor();
- output.endDiv(CssClass.USAGE_SUMMARY_SYNOPSIS);
- output.beginDiv(CssClass.USAGE_SUMMARY_DESCRIPTION);
- printTags(output, ((FieldDoc)user), ((FieldDoc)user).firstSentenceTags(), true);
- output.endDiv(CssClass.USAGE_SUMMARY_DESCRIPTION);
- output.endCell();
- }
- else if (user instanceof MethodDoc) {
- MethodDoc methodDoc = (MethodDoc)user;
-
- output.beginCell(CssClass.USAGE_SUMMARY_LEFT);
- printType(output, ((MethodDoc)user).returnType());
- output.endCell();
-
- output.beginCell(CssClass.USAGE_SUMMARY_RIGHT);
- output.beginDiv(CssClass.USAGE_SUMMARY_SYNOPSIS);
- printType(output, ((MethodDoc)user).containingClass());
- output.print(".");
- output.beginAnchor(getMemberDocURL(output, (MethodDoc)user));
- output.print(((MethodDoc)user).name());
- output.endAnchor();
- printParameters(output, (ExecutableMemberDoc)user);
- output.endDiv(CssClass.USAGE_SUMMARY_SYNOPSIS);
- output.beginDiv(CssClass.USAGE_SUMMARY_DESCRIPTION);
- printTags(output, ((MethodDoc)user), ((MethodDoc)user).firstSentenceTags(), true);
- output.endDiv(CssClass.USAGE_SUMMARY_DESCRIPTION);
- output.endCell();
- }
- else if (user instanceof ConstructorDoc) {
- ConstructorDoc constructorDoc = (ConstructorDoc)user;
-
- output.beginCell(CssClass.USAGE_SUMMARY_RIGHT);
- output.beginDiv(CssClass.USAGE_SUMMARY_SYNOPSIS);
- printType(output, ((ConstructorDoc)user).containingClass());
- output.print(".");
- output.beginAnchor(getMemberDocURL(output, (ConstructorDoc)user));
- output.print(((ConstructorDoc)user).name());
- output.endAnchor();
- printParameters(output, (ExecutableMemberDoc)user);
- output.endDiv(CssClass.USAGE_SUMMARY_SYNOPSIS);
- output.beginDiv(CssClass.USAGE_SUMMARY_DESCRIPTION);
- printTags(output, ((ConstructorDoc)user),
- ((ConstructorDoc)user).firstSentenceTags(), true);
- output.endDiv(CssClass.USAGE_SUMMARY_DESCRIPTION);
- output.endCell();
- }
-
- output.endRow();
- }
- output.endTable();
- }
- }
- }
- else {
- output.div(CssClass.USAGE_EMPTY,
- getClassTypeName(classDoc)
- + " " + classDoc.qualifiedName() + " is not used by any class in this documentation set.");
- }
- printNavBarBottom(output, "uses", classDoc);
- output.endBody();
- output.endPage();
- output.close();
- }
-
- private void printSuperTreeRec(HtmlPage output, ListIterator it, int level)
- {
- if (it.hasPrevious()) {
- ClassDoc cd = (ClassDoc)it.previous();
- output.beginElement("li", new String[] { "class" }, new String[] { "inheritance " + level });
- output.beginElement("code");
- if (it.hasPrevious()) {
- printType(output, cd, true);
- }
- else {
- output.print(cd.qualifiedName() + getTypeParameters(cd));
- }
- output.endElement("code");
- output.endElement("li");
-
- output.beginElement("li");
-
- if (it.hasPrevious()) {
- output.beginElement("ul", new String[] { "class" }, new String[] { "inheritance " + (level + 1) });
- printSuperTreeRec(output, it, level + 1);
- output.endElement("ul");
- }
-
- output.endElement("li");
- }
- }
-
- private static boolean isSubInterface(ClassDoc classDoc, ClassDoc otherClassDoc)
- {
- ClassDoc[] interfaces = otherClassDoc.interfaces();
- for (int i=0; i 0) {
- output.beginDiv(CssClass.CLASS_SYNOPSIS_IMPLEMENTS);
- if (!classDoc.isInterface()) {
- output.print("implements ");
- }
- else {
- output.print("extends ");
- }
- for (int i=0; i0) {
- output.print(", ");
- }
- printType(output, interfaces[i]);
- }
- output.endDiv(CssClass.CLASS_SYNOPSIS_IMPLEMENTS);
- }
- output.endDiv(CssClass.CLASS_SYNOPSIS);
-
- output.hr();
-
- if (!optionNoComment.getValue()) {
- output.beginDiv(CssClass.CLASS_DESCRIPTION);
- printTags(output, classDoc, classDoc.inlineTags(), false);
- output.endDiv(CssClass.CLASS_DESCRIPTION);
-
- printTaglets(output, classDoc.tags(), new HtmlTagletContext(classDoc, output, false));
- }
-
-
- Set implementedInterfaces = getImplementedInterfaces(classDoc);
-
- boolean haveInheritedFields = false;
- boolean haveInheritedMethods = false;
- boolean haveInheritedClasses = false;
- {
- if (!classDoc.isInterface()) {
- ClassDoc superClassDoc = classDoc.superclass();
- while (null != superClassDoc
- && (!haveInheritedFields
- || !haveInheritedMethods
- || !haveInheritedClasses)) {
- if (superClassDoc.fields().length > 0) {
- haveInheritedFields = true;
- }
- if (superClassDoc.methods().length > 0) {
- haveInheritedMethods = true;
- }
- if (superClassDoc.innerClasses().length > 0) {
- haveInheritedClasses = true;
- }
- superClassDoc = superClassDoc.superclass();
- }
- }
- }
-
- printProgramElementDocs(output, getSortedInnerClasses(classDoc),
- "Nested Class Summary", haveInheritedClasses,
- "summary-inner");
-
- {
- ClassDoc superClassDoc = classDoc.superclass();
- while (null != superClassDoc) {
- printInheritedMembers(output, getSortedInnerClasses(superClassDoc),
- "Nested classes/interfaces inherited from class {0}",
- superClassDoc);
- superClassDoc = superClassDoc.superclass();
- }
- }
-
- printProgramElementDocs(output, getSortedFields(classDoc),
- "Field Summary", haveInheritedFields,
- "summary-fields");
-
- {
- ClassDoc superClassDoc = classDoc.superclass();
- while (null != superClassDoc) {
- printInheritedMembers(output, getSortedFields(superClassDoc),
- "Fields inherited from class {0}",
- superClassDoc);
- superClassDoc = superClassDoc.superclass();
- }
- }
-
- {
- Iterator it = implementedInterfaces.iterator();
- while (it.hasNext()) {
- ClassDoc implementedInterface
- = (ClassDoc)it.next();
- if (!"java.io.Serializable".equals(implementedInterface.qualifiedName())
- && !"java.io.Externalizable".equals(implementedInterface.qualifiedName())) {
- printInheritedMembers(output, getSortedFields(implementedInterface),
- "Fields inherited from interface {0}",
- implementedInterface);
- }
- }
- }
-
- printProgramElementDocs(output, getSortedConstructors(classDoc),
- "Constructor Summary", false,
- "summary-constructors");
- printProgramElementDocs(output, getSortedMethods(classDoc),
- "Method Summary", haveInheritedMethods,
- "summary-methods");
-
- if (classDoc.isInterface()) {
- InterfaceRelation relation
- = (InterfaceRelation)getInterfaceRelations().get(classDoc);
- Iterator it = relation.superInterfaces.iterator();
- while (it.hasNext()) {
- ClassDoc superClassDoc = (ClassDoc)it.next();
- printInheritedMembers(output, getSortedMethods(superClassDoc),
- "Methods inherited from interface {0}",
- superClassDoc);
- }
- }
- else {
- ClassDoc superClassDoc = classDoc.superclass();
- while (null != superClassDoc) {
- printInheritedMembers(output, getSortedMethods(superClassDoc),
- "Methods inherited from class {0}",
- superClassDoc);
- superClassDoc = superClassDoc.superclass();
- }
- }
-
- printMemberDetails(output, getSortedFields(classDoc),
- "Field Details", false, "detail-fields");
- printMemberDetails(output, getSortedConstructors(classDoc),
- "Constructor Details", false, "detail-constructors");
- printMemberDetails(output, getSortedMethods(classDoc),
- "Method Details", false, "detail-methods");
-
- printNavBarBottom(output, "class", classDoc);
-
- output.endBody();
- output.endPage();
- output.close();
- }
-
- private void printInheritedMembers(HtmlPage output,
- ProgramElementDoc[] memberDocs,
- String headerFormat,
- ClassDoc superclass)
- {
- if (memberDocs.length > 0) {
-
- output.beginDiv(CssClass.TABLE_CONTAINER);
- output.beginTable(CssClass.CLASS_SUMMARY, new String[] { "border", "width" }, new String[] { "1", "100%" });
- String superclassLink;
- if (superclass.isIncluded()) {
- superclassLink = superclass.containingPackage().name()
- + "." + createTypeHref(output, superclass, false);
- }
- else {
- superclassLink = createTypeHref(output, superclass, true);
- }
- output.rowDiv(CssClass.TABLE_SUB_HEADER,
- new MessageFormat(headerFormat).format(new Object[] {
- superclassLink
- }));
-
- output.beginRow();
- output.beginCell(CssClass.CLASS_SUMMARY_INHERITED);
- for (int i=0; i 0) {
- output.print(", ");
- }
- String title = null;
- if (memberDoc.isMethod()) {
- title = memberDoc.name() + ((MethodDoc)memberDoc).flatSignature();
- }
- else if (memberDoc.isInterface()) {
- title = "interface " + ((ClassDoc)memberDoc).qualifiedName();
- }
- else if (memberDoc.isClass()) {
- title = "class " + ((ClassDoc)memberDoc).qualifiedName();
- }
- output.beginAnchor(getMemberDocURL(output, memberDoc), title);
- output.beginSpan(CssClass.CLASS_SUMMARY_INHERITED_MEMBER);
- output.print(memberDoc.name());
- output.endSpan(CssClass.CLASS_SUMMARY_INHERITED_MEMBER);
- output.endAnchor();
- }
- output.endCell();
- output.endRow();
- output.endTable();
- output.endDiv(CssClass.TABLE_CONTAINER);
- }
- }
-
- private void collectSpecifiedByRecursive(Set specifyingInterfaces,
- ClassDoc classDoc,
- MethodDoc methodDoc)
- {
- ClassDoc[] interfaces = classDoc.interfaces();
- for (int i=0; i 0) {
-
- if (null != anchor) {
- output.anchorName(anchor);
- }
-
- CssClass sectionClass;
- CssClass headerClass;
- if (isOnSerializedPage) {
- sectionClass = CssClass.SERIALIZED_SECTION;
- headerClass = CssClass.SERIALIZED_SECTION_HEADER;
- }
- else {
- sectionClass = CssClass.SECTION;
- headerClass = CssClass.SECTION_HEADER;
- }
- output.div(headerClass, header);
- output.beginDiv(sectionClass);
-
- for (int i=0; i0) {
- output.hr();
- }
-
- ProgramElementDoc memberDoc = memberDocs[i];
-
- output.anchorName(getMemberAnchor(memberDoc));
-
- output.beginDiv(CssClass.MEMBER_DETAIL);
- output.div(CssClass.MEMBER_DETAIL_NAME, memberDoc.name());
-
- StringBuffer synopsis = new StringBuffer();
- int synopsisLength = 0;
-
- if (!isOnSerializedPage || !memberDoc.isField()) {
- String fullModifiers = getFullModifiers(memberDoc);
- synopsis.append(fullModifiers);
- synopsisLength += fullModifiers.length();
-
- }
- if (memberDoc.isMethod() || memberDoc.isField()) {
- Type type;
- if (memberDoc.isMethod()) {
- type = ((MethodDoc)memberDoc).returnType();
- }
- else {
- type = ((FieldDoc)memberDoc).type();
- }
-
- synopsis.append(" ");
- synopsisLength ++;
- synopsis.append(createTypeHref(output, type, false));
- if (null != type.asClassDoc() && type.asClassDoc().isIncluded()) {
- synopsisLength += type.asClassDoc().name().length();
- }
- else {
- synopsisLength += type.qualifiedTypeName().length();
- }
- synopsisLength += type.dimension().length();
- }
-
- synopsis.append(" ");
- synopsisLength ++;
-
- if (optionLinkSource.getValue() && null != memberDoc.position()) {
- ClassDoc containingClass = memberDoc.containingClass();
- while (null != containingClass.containingClass()) {
- containingClass = containingClass.containingClass();
- }
- String href = containingClass.name() + "-source" + filenameExtension + "#line." + memberDoc.position().line();
- synopsis.append(output.createHrefString(href, memberDoc.name()));
- }
- else {
- synopsis.append(memberDoc.name());
- }
- synopsisLength += memberDoc.name().length();
-
- if (memberDoc.isConstructor() || memberDoc.isMethod()) {
- //printParameters(output, (ExecutableMemberDoc)memberDoc);
- synopsis.append("(");
- ++ synopsisLength;
- StringBuffer paddingLeft = new StringBuffer();
- for (int j=0; j 0) {
- synopsis.append("\n throws ");
- for (int j=0; j 0) {
- output.beginDiv(CssClass.DEPRECATED_INLINE);
- output.beginSpan(CssClass.DEPRECATED_HEADER);
- output.print("Deprecated. ");
- output.endSpan(CssClass.DEPRECATED_HEADER);
- output.beginSpan(CssClass.DEPRECATED_BODY);
- }
- for (int j=0; j 0) {
- output.endSpan(CssClass.DEPRECATED_BODY);
- output.beginDiv(CssClass.DEPRECATED_INLINE);
- }
-
- output.beginDiv(CssClass.MEMBER_DETAIL_DESCRIPTION);
- printTags(output, memberDoc, memberDoc.inlineTags(), false);
- output.endDiv(CssClass.MEMBER_DETAIL_DESCRIPTION);
-
- if (memberDoc.isConstructor() || memberDoc.isMethod()) {
-
- if (memberDoc.isMethod()) {
- Set specifyingInterfaces = new LinkedHashSet();
- if (memberDoc.containingClass().isInterface()) {
- collectSpecifiedByRecursive(specifyingInterfaces,
- memberDoc.containingClass(),
- (MethodDoc)memberDoc);
- }
- else {
- for (ClassDoc cd = memberDoc.containingClass();
- null != cd; cd = cd.superclass()) {
- collectSpecifiedByRecursive(specifyingInterfaces,
- cd,
- (MethodDoc)memberDoc);
- }
- }
-
- if (!specifyingInterfaces.isEmpty()
- && !isOnSerializedPage) {
- output.beginDiv(CssClass.MEMBER_DETAIL_SPECIFIED_BY_LIST);
- output.div(CssClass.MEMBER_DETAIL_SPECIFIED_BY_HEADER, "Specified by:");
- Iterator it = specifyingInterfaces.iterator();
- while (it.hasNext()) {
- MethodDoc specifyingInterfaceMethod = (MethodDoc)it.next();
- output.beginDiv(CssClass.MEMBER_DETAIL_SPECIFIED_BY_ITEM);
- output.beginAnchor(getMemberDocURL(output,
- specifyingInterfaceMethod));
- output.print(memberDoc.name());
- output.endAnchor();
- output.print(" in interface ");
- printType(output, specifyingInterfaceMethod.containingClass());
- output.endDiv(CssClass.MEMBER_DETAIL_SPECIFIED_BY_ITEM);
- }
- output.endDiv(CssClass.MEMBER_DETAIL_SPECIFIED_BY_LIST);
- }
-
- ClassDoc overriddenClassDoc = null;
- MemberDoc specifyingSuperMethod = null;
-
- for (ClassDoc superclassDoc = memberDoc.containingClass().superclass();
- null != superclassDoc && null == overriddenClassDoc;
- superclassDoc = superclassDoc.superclass()) {
-
- MethodDoc[] methods = superclassDoc.methods();
- for (int j=0; j 0) {
- output.beginDiv(CssClass.MEMBER_DETAIL_PARAMETER_LIST);
- output.div(CssClass.MEMBER_DETAIL_PARAMETER_HEADER, "Parameters:");
- Parameter[] parameters = execMemberDoc.parameters();
- for (int j=0; j 0) {
- Tag returnTag = returnTags[0];
-
- output.beginDiv(CssClass.MEMBER_DETAIL_RETURN_LIST);
- output.div(CssClass.MEMBER_DETAIL_RETURN_HEADER, "Returns:");
- output.beginDiv(CssClass.MEMBER_DETAIL_RETURN_ITEM);
-
- printTags(output, execMemberDoc, returnTag.inlineTags(), false);
-
- output.endDiv(CssClass.MEMBER_DETAIL_RETURN_ITEM);
- output.endDiv(CssClass.MEMBER_DETAIL_RETURN_LIST);
- }
- }
-
- Set thrownExceptions = getThrownExceptions(execMemberDoc);
- boolean haveThrowsInfo = false;
- ThrowsTag[] throwsTags = execMemberDoc.throwsTags();
- for (int k=0; k 0) {
- output.print(", ");
- }
- printType(output, parameters[j].type());
- output.print(" ");
- output.print(parameters[j].name());
- }
- output.print(")");
- }
-
- private void printProgramElementDocs(HtmlPage output,
- ProgramElementDoc[] memberDocs,
- String header,
- boolean forceOutputHeader,
- String anchor)
- {
- if (memberDocs.length > 0 || forceOutputHeader) {
- output.anchorName(anchor);
- output.beginDiv(CssClass.TABLE_CONTAINER);
- output.beginTable(CssClass.CLASS_SUMMARY, new String[] { "border", "width" }, new String[] { "1", "100%" });
- output.rowDiv(CssClass.TABLE_HEADER, header);
-
- for (int i=0; i 0) {
- firstSentenceTags = deprecatedTags[0].firstSentenceTags();
- }
- else {
- firstSentenceTags = memberDoc.firstSentenceTags();
- }
-
- if (null != firstSentenceTags && firstSentenceTags.length > 0) {
- output.beginDiv(CssClass.CLASS_SUMMARY_RIGHT_DESCRIPTION);
- if (deprecatedTags.length > 0) {
- output.beginDiv(CssClass.DEPRECATED);
- output.beginSpan(CssClass.DEPRECATED_HEADER);
- output.print("Deprecated. ");
- output.endSpan(CssClass.DEPRECATED_HEADER);
- output.beginSpan(CssClass.DEPRECATED_BODY);
- }
- printTags(output, memberDoc, firstSentenceTags, true);
- if (deprecatedTags.length > 0) {
- output.endSpan(CssClass.DEPRECATED_BODY);
- output.beginDiv(CssClass.DEPRECATED);
- }
- output.endDiv(CssClass.CLASS_SUMMARY_RIGHT_DESCRIPTION);
- }
- output.endDiv(CssClass.CLASS_SUMMARY_RIGHT_LIST);
- output.endCell();
- output.endRow();
- }
- output.endTable();
- output.endDiv(CssClass.TABLE_CONTAINER);
- }
- }
-
- private void printTag(final HtmlPage output,
- HtmlRepairer repairer,
- Tag tag, boolean firstSentence,
- boolean inline,
- Doc contextDoc)
- {
- TagletContext context = new HtmlTagletContext(contextDoc, output, false);
- if (firstSentence) {
- output.print(renderInlineTags(tag.firstSentenceTags(), context));
- }
- else {
- output.print(renderInlineTags(tag.inlineTags(), context));
- }
- }
-
- private void printTags(HtmlPage output, Doc contextDoc, Tag[] tags, boolean firstSentence)
- {
- printTags(output, contextDoc, tags, firstSentence, false);
- }
-
- private void printTags(HtmlPage output, Doc contextDoc, Tag[] tags, boolean firstSentence, boolean inline)
- {
- if (!optionNoComment.getValue()) {
- output.print(renderInlineTags(tags, new HtmlTagletContext(contextDoc, output, false)));
- }
-
- /*
- if (!optionNoComment.getValue()) {
- output.print(renderInlineTags(tag.firstSentenceTags(), output));
- HtmlRepairer repairer = new HtmlRepairer(getRootDoc(),
- true, false,
- null, null,
- true);
- for (int i=0; i 0) {
- externalDocSet = packageNameToDocSet.get(packageDoc.name());
- }
- StringBuffer result = new StringBuffer();
- result.append(getClassDocURL(output, classDoc));
- result.append('#');
- if (null == externalDocSet) {
- result.append(getMemberAnchor(memberDoc));
- }
- else {
- result.append(getMemberAnchor(memberDoc, externalDocSet.isJavadocCompatible()));
- }
- return result.toString();
- }
-
- private void printType(HtmlPage output, Type type)
- {
- printType(output, type, false);
- }
-
- private void printType(HtmlPage output, Type type, boolean fullyQualified)
- {
- output.print(createTypeHref(output, type, fullyQualified));
- }
-
- private String createTypeHref(HtmlPage output, Type type, boolean fullyQualified)
- {
- ClassDoc asClassDoc = type.asClassDoc();
- String url = null;
- if (null != asClassDoc && asClassDoc.isIncluded()) {
- url = getClassDocURL(output, asClassDoc);
- }
- else if (!type.isPrimitive()) {
- if (type.qualifiedTypeName().length() > type.typeName().length()) {
- String packageName = type.qualifiedTypeName();
- packageName = packageName.substring(0, packageName.length() - type.typeName().length() - 1);
-
- ExternalDocSet externalDocSet = packageNameToDocSet.get(packageName);
- if (null != externalDocSet) {
- url = externalDocSet.getClassDocURL(packageName, type.typeName());
- }
- }
- }
-
- StringBuffer result = new StringBuffer();
-
- if (null != url && null != asClassDoc) {
- String parameters = getTypeParameters(asClassDoc);
- if (fullyQualified) {
- result.append(output.createHrefString(url,possiblyQualifiedName(asClassDoc) + parameters));
- }
- else {
- StringBuffer title = new StringBuffer();
- title.append(getClassTypeName(asClassDoc));
- title.append(" in ");
- title.append(asClassDoc.containingPackage().name());
- result.append(output.createHrefString(url, asClassDoc.name() + parameters, title.toString()));
- }
- }
- else {
- result.append(possiblyQualifiedName(type));
- }
- result.append(type.dimension());
- return result.toString();
- }
-
- private void printTaglets(final HtmlPage output, Tag[] tags, TagletContext context)
- {
- super.printMainTaglets(tags, context, new TagletPrinter() {
- public void printTagletString(String tagletString) {
- output.beginDiv(CssClass.TAGLET);
- output.print(tagletString);
- output.endDiv(CssClass.TAGLET);
- }
- });
- }
-
- private String getPackageURL(PackageDoc packageDoc)
- {
- if (packageDoc.name().length() > 0) {
- ExternalDocSet externalDocSet = packageNameToDocSet.get(packageDoc.name());
- String url;
- if (null != externalDocSet) {
- url = externalDocSet.getPackageDocURL(packageDoc.name());
- }
- else {
- url = packageDoc.name().replace('.', '/');
- }
- if (!url.endsWith("/")) {
- return url + '/';
- }
- else {
- return url;
- }
- }
- else {
- return "";
- }
- }
-
- private String getClassURL(ClassDoc classDoc)
- {
- ExternalDocSet externalDocSet = null;
- if (classDoc.containingPackage().name().length() > 0) {
- externalDocSet = packageNameToDocSet.get(classDoc.containingPackage().name());
- }
- if (null != externalDocSet) {
- return externalDocSet.getClassDocURL(classDoc.containingPackage().name(),
- classDoc.name());
- }
- else {
- return getPackageURL(classDoc.containingPackage()) + classDoc.name() + filenameExtension;
- }
- }
-
- protected void run()
- throws DocletConfigurationException, IOException
- {
- if (optionSerialWarn.getValue()) {
- printWarning("Option -serialwarn is currently ignored.");
- }
-
- if (null != optionTitle.getValue()) {
- printWarning("Option -title is deprecated.");
- }
-
- if (!optionValidHtml.getValue()) {
- printWarning("Option -validhtml hasn't been specified. Generated HTML will not validate.");
- }
-
-
- {
- boolean warningEmitted = false;
- Iterator it = externalDocSets.iterator();
- while (it.hasNext()) {
- ExternalDocSet externalDocSet = (ExternalDocSet)it.next();
- printNotice("Fetching package list for external documentation set.");
- try {
- externalDocSet.load(getTargetDirectory());
- if (!isJavadocCompatibleNames() && externalDocSet.isJavadocCompatible()
- && !warningEmitted) {
- printWarning("Linking to javadoc-compatible documentation. Generated HTML will not validate ");
- warningEmitted = true;
- }
- }
- catch (FileNotFoundException e) {
- printWarning("Cannot fetch package list from " + externalDocSet.getPackageListDir());
- }
- Iterator pit = externalDocSet.getPackageNames().iterator();
- while (pit.hasNext()) {
- String packageName = (String)pit.next();
- packageNameToDocSet.put(packageName, externalDocSet);
- }
- }
- }
- printNotice("Building cross-reference information...");
- getInterfaceRelations();
- getAllSubClasses();
-
- printNotice("Writing overview files...");
- printFrameSetPage();
- if (!isSinglePackage()) {
- printPackagesMenuPage();
- printAllClassesMenuPage();
- printOverviewPage();
- if (!optionNoTree.getValue()) {
- printNotice("Writing full tree...");
- printFullTreePage();
- }
- }
- printPackagesListFile();
- printAboutPage();
- if (!optionNoIndex.getValue()) {
- printNotice("Writing index...");
- if (!optionSplitIndex.getValue()) {
- printIndexPage();
- }
- else {
- printSplitIndex();
- }
- }
- if (outputHelpPage && !optionNoHelp.getValue()) {
- printHelpPage();
- }
-
- // Copy resources
-
- File resourcesDir = new File(getTargetDirectory(),
- "resources");
-
- if ((resourcesDir.exists() && !resourcesDir.isDirectory())
- || (!resourcesDir.exists() && !resourcesDir.mkdirs())) {
- throw new IOException("Cannot create directory " + resourcesDir);
- }
-
- // Copy resources
-
- String[] resourceNames = {
- "gjdoc.js",
- "gjdochtml-clean-layout.css",
- "gjdochtml-clean-color1.css",
- "inherit.png",
- "xhtml11-target10.dtd",
- };
-
- for (int i=0; i 0) ? packageDocs[i - 1] : null,
- (i < packageDocs.length - 1) ? packageDocs[i + 1] : null);
- if (!optionNoTree.getValue()) {
- printPackageTreePage(packageDir, pathToRoot, packageDoc);
- }
- printPackageClassesMenuPage(packageDir, pathToRoot, packageDoc);
- ClassDoc[] classDocs = packageDoc.allClasses();
- for (int j=0; j 0) ? classDocs[j - 1] : null,
- (j < classDocs.length - 1) ? classDocs[j + 1] : null
- );
- if (optionUse.getValue()) {
- printClassUsagePage(packageDir, pathToRoot, classDocs[j]);
- }
- if (optionLinkSource.getValue() && null == classDoc.containingClass()) {
- try {
- File sourceFile = getSourceFile(classDoc);
-
- Java2xhtml java2xhtml = new Java2xhtml();
- Properties properties = new Properties();
- properties.setProperty("isCodeSnippet", "true");
- properties.setProperty("hasLineNumbers", "true");
- java2xhtml.setProperties(properties);
-
- StringWriter sourceBuffer = new StringWriter();
- FileReader sourceReader = new FileReader(sourceFile);
- IOToolkit.copyStream(sourceReader, sourceBuffer);
- sourceReader.close();
- String result = java2xhtml.makeHTML(sourceBuffer.getBuffer(), sourceFile.getName());
-
- printSourcePage(packageDir,
- classDoc,
- result);
- }
- catch (IOException e) {
- printWarning("Cannot locate source file for class " + classDoc.qualifiedTypeName());
- }
- }
- }
- }
- }
- }
-
- private String getPathToRoot(File subDir, File rootDir)
- {
- StringBuffer result = new StringBuffer();
- while (!subDir.equals(rootDir)) {
- if (result.length() > 0) {
- result.append("/");
- }
- subDir = subDir.getParentFile();
- result.append("..");
- }
- if (0 == result.length()) {
- result.append(".");
- }
- return result.toString();
- }
-
- private String getClassTypeName(ClassDoc classDoc)
- {
- if (classDoc.isInterface()) {
- return "Interface";
- }
- else {
- return "Class";
- }
- }
-
- private String getClassTypeKeyword(ClassDoc classDoc)
- {
- if (classDoc.isInterface()) {
- return "interface";
- }
- else {
- return "class";
- }
- }
-
- private String getMemberAnchor(ProgramElementDoc memberDoc)
- {
- return getMemberAnchor(memberDoc, isJavadocCompatibleNames());
- }
-
- private String getMemberAnchor(ProgramElementDoc memberDoc, boolean javadocCompatibility)
- {
- StringBuffer anchor = new StringBuffer();
- anchor.append(memberDoc.name());
- if (memberDoc.isConstructor() || memberDoc.isMethod()) {
- if (javadocCompatibility) {
- anchor.append(((ExecutableMemberDoc)memberDoc).signature());
- }
- else {
- anchor.append(':');
- Parameter[] parameters = ((ExecutableMemberDoc)memberDoc).parameters();
- for (int i=0; i referencedPackageName.length())
- && referencedClassName.startsWith(packageName + '.')) {
- referencedPackageName = packageName;
- }
- }
-
- if (null != referencedPackageName) {
- ExternalDocSet externalDocSet
- = (ExternalDocSet)packageNameToDocSet.get(referencedPackageName);
-
- String className = referencedClassName.substring(referencedPackageName.length() + 1);
- href = externalDocSet.getClassDocURL(referencedPackageName,
- className);
- label = className;
-
- String referencedMemberName = seeTag.referencedMemberName();
-
- if (null != referencedMemberName) {
- label += '.';
- label += referencedMemberName;
- href += '#' + transformReferencedMemberName(referencedMemberName,
- externalDocSet.isJavadocCompatible());
- }
- else if (null != seeTag.referencedMemberName()) {
- href = null;
- }
- }
- }
- }
-
- if (null != seeTag.label()
- && seeTag.label().length() > 0) {
- label = seeTag.label();
- }
-
- if (null == label) {
- label = seeTag.text();
- if (label.startsWith("#")) {
- label = label.substring(1);
- }
- else {
- label = label.replace('#', '.');
- }
- label.trim();
- }
-
- if (null != href) {
- result.append("");
- if (!plainFont) {
- result.append("");
- }
- result.append(label);
- if (!plainFont) {
- result.append("");
- }
- result.append("");
- }
- else {
- if (!plainFont) {
- result.append("");
- }
- result.append(label);
- if (!plainFont) {
- result.append("");
- }
- }
-
- return result.toString();
- }
-
- protected String renderTag(String tagName, Tag[] tags, TagletContext context)
- {
- Doc doc = context.getDoc();
-
- if ("see".equals(tagName)
- && ((tags.length > 0)
- || (doc.isClass()
- && (((ClassDoc)doc).isSerializable()
- || ((ClassDoc)doc).isExternalizable())))) {
-
- StringBuffer result = new StringBuffer();
- result.append("
");
- return result.toString();
- }
- else if (tags.length > 0
- && "serial".equals(tagName)
- && ((HtmlTagletContext)context).isOnSerializedPage()) {
-
- return renderInlineTags(tags[0].inlineTags(), context);
- }
- else {
- return "";
- }
- }
-
- private String getWindowTitle()
- {
- if (null == optionWindowTitle.getValue()) {
- return "Generated API Documentation";
- }
- else {
- return optionWindowTitle.getValue();
- }
- }
-
- private String getPageTitle(String title)
- {
- if (null == optionWindowTitle.getValue()) {
- return title;
- }
- else {
- return title + " (" + optionWindowTitle.getValue() + ")";
- }
- }
-
- protected String getDocletVersion()
- {
- if (null == docletVersion) {
- docletVersion = gnu.classpath.Configuration.CLASSPATH_VERSION;
- }
- return docletVersion;
- }
-
- private Map getStylesheets()
- {
- Map sheets = new HashMap();
- if (null != optionStylesheetFile.getValue()) {
- sheets.put("User-specified", new String[] {
- "resources/user.css"
- });
- }
- else {
- List cleanSheets = new LinkedList();
- cleanSheets.add("resources/gjdochtml-clean-layout.css");
- cleanSheets.add("resources/gjdochtml-clean-color1.css");
- if (null != optionAddStylesheet.getValue()) {
- cleanSheets.add("resources/user.css");
- }
- sheets.put("GNU Clean", cleanSheets.toArray(new String[0]));
- }
- return sheets;
- }
-
- protected boolean isSinglePackage()
- {
- if (getRootDoc().firstSentenceTags().length > 0) {
- return false;
- }
- else if (null != optionDocTitle.getValue()
- || null != optionTitle.getValue()) {
- return false;
- }
- else {
- return super.isSinglePackage();
- }
- }
-
- private String getTypeParameters(ClassDoc classDoc)
- {
- String parameters = "";
- TypeVariable[] params = classDoc.typeParameters();
- if (params != null && params.length > 0)
- {
- parameters = "<";
- for (int a = 0; a < params.length; ++a)
- {
- parameters += params[a].typeName();
- Type[] bounds = params[a].bounds();
- if (bounds != null)
- {
- parameters += " extends ";
- for (int b = 0; a < bounds.length; ++b)
- {
- parameters += bounds[a];
- if (b != bounds.length - 1)
- parameters += " & ";
- }
- }
- if (a != params.length - 1)
- parameters += ",";
- }
- parameters += ">";
- }
- return parameters;
- }
-
- private String transformReferencedMemberName(String referencedMemberName,
- boolean javadocCompatibility)
- {
- if (!javadocCompatibility) {
- StringBuffer result = new StringBuffer();
- for (int i=0; i";
-
- public HtmlPage(File file, String pathToRoot, String encoding, String baseUrl, File rootDir)
- throws IOException
- {
- this(file, pathToRoot, encoding, baseUrl, rootDir, "");
- }
-
- public HtmlPage(File file, String pathToRoot, String encoding, String baseUrl, File rootDir, String docType)
- throws IOException
- {
- this.file = file;
- OutputStream fileOut = new FileOutputStream(file);
- Writer writer;
- if (null != encoding) {
- writer = new OutputStreamWriter(fileOut,
- encoding);
- }
- else {
- writer = new OutputStreamWriter(fileOut);
- }
- this.out = new PrintWriter(new BufferedWriter(writer));
- this.pathToRoot = pathToRoot;
- this.docType = docType;
- this.baseUrl = baseUrl;
- this.rootDir = rootDir;
- }
-
- public void beginElement(String elementName)
- {
- print('<');
- print(elementName);
- print('>');
- }
-
- public void beginElement(String elementName, String attributeName, String attributeValue)
- {
- print('<');
- print(elementName);
- print(' ');
- print(attributeName);
- print('=');
- print('\"');
- print(attributeValue);
- print('\"');
- print('>');
- }
-
- public void beginElement(String elementName, String[] attributeNames, String[] attributeValues)
- {
- print('<');
- print(elementName);
- for (int i=0; i');
- }
-
- public void beginElement(String elementName, String attributeName, String attributeValue, String[] attributeNames, String[] attributeValues)
- {
- print('<');
- print(elementName);
- print(' ');
- print(attributeName);
- print('=');
- print('\"');
- print(attributeValue);
- print('\"');
- if (null != attributeNames) {
- for (int i=0; i');
- }
-
- public void atomicElement(String elementName)
- {
- print('<');
- print(elementName);
- print("/>");
- }
-
- public void atomicElement(String elementName, String attributeName, String attributeValue)
- {
- print('<');
- print(elementName);
- print(' ');
- print(attributeName);
- print('=');
- print('\"');
- print(attributeValue);
- print('\"');
- print("/>");
- }
-
- public void atomicElement(String elementName, String[] attributeNames, String[] attributeValues)
- {
- print('<');
- print(elementName);
- for (int i=0; i");
- }
-
-
- public void endElement(String elementName)
- {
- print("");
- print(elementName);
- print('>');
- }
-
-
- public void beginDiv(CssClass cssClass)
- {
- String[] divAttributeNames = cssClass.getAttributeNames();
- String[] divAttributeValues = cssClass.getAttributeValues();
- if (null == divAttributeNames) {
- divAttributeNames = new String[0];
- }
- if (null == divAttributeValues) {
- divAttributeValues = new String[0];
- }
-
- String[] attributeNames = new String[1 + divAttributeNames.length];
- String[] attributeValues = new String[1 + divAttributeValues.length];
-
- System.arraycopy(divAttributeNames, 0, attributeNames, 1, divAttributeNames.length);
- System.arraycopy(divAttributeValues, 0, attributeValues, 1, divAttributeNames.length);
-
- attributeNames[0] = "class";
- attributeValues[0] = cssClass.getName();
-
- beginElement(cssClass.getDivElementName(), attributeNames, attributeValues);
- if (null != cssClass.getInnerElementName()) {
- beginElement(cssClass.getInnerElementName());
- }
- }
-
- public void endDiv(CssClass cssClass)
- {
- if (null != cssClass.getInnerElementName()) {
- endElement(cssClass.getInnerElementName());
- }
- endElement(cssClass.getDivElementName());
- }
-
- public void beginSpan(CssClass cssClass)
- {
- beginElement(cssClass.getSpanElementName(), "class", cssClass.getName());
- }
-
- public void endSpan(CssClass cssClass)
- {
- endElement(cssClass.getSpanElementName());
- }
-
- public void hr()
- {
- atomicElement("hr");
- }
-
- public void br()
- {
- atomicElement("br");
- }
-
- public void print(String text)
- {
- out.print(text);
- }
-
- public void print(char c)
- {
- out.print(c);
- }
-
- public void div(CssClass cssClass, String contents)
- {
- beginDiv(cssClass);
- print(contents);
- endDiv(cssClass);
- }
-
- public void span(CssClass cssClass, String contents)
- {
- beginSpan(cssClass);
- print(contents);
- endSpan(cssClass);
- }
-
- public void beginPage(String title, String charset, Map stylesheets)
- throws IOException
- {
- beginPage(title, charset, Collections.EMPTY_SET, stylesheets);
- }
-
- public void beginPage(String title, String charset,
- Collection keywords, Map stylesheets)
- throws IOException
- {
- print("\n");
- print(docType);
- print("");
- beginElement("head");
- beginElement("title");
- print(title);
- endElement("title");
- if (null != baseUrl && baseUrl.length() > 0) {
- StringBuffer url = new StringBuffer();
- url.append(baseUrl);
- if ('/' == url.charAt(url.length() - 1)) {
- url.delete(url.length() - 1, url.length());
- }
- url.append(file.getCanonicalPath().substring(rootDir.getCanonicalPath().length()));
- atomicElement("base",
- new String[] { "href" },
- new String[] { url.toString() });
- }
- beginElement("script",
- new String[] { "src", "type" },
- new String[] { pathToRoot + "/resources/gjdoc.js", "text/javascript" });
- print("");
- endElement("script");
- atomicElement("meta",
- new String[] { "http-equiv", "content" },
- new String[] { "Content-Type", "text/html; charset=" + charset });
- atomicElement("meta",
- new String[] { "name", "content" },
- new String[] { "generator", "GNU Gjdoc Standard Doclet" });
- Iterator keywordIt = keywords.iterator();
- while (keywordIt.hasNext()) {
- String keyword = (String)keywordIt.next();
- atomicElement("meta",
- new String[] { "name", "content" },
- new String[] { "keywords", keyword });
- }
-
- Iterator cssIt = stylesheets.keySet().iterator();
- while (cssIt.hasNext()) {
- String sheetName = (String)cssIt.next();
- String[] sheetFiles = (String[])stylesheets.get(sheetName);
-
- for (int i=0; i");
- result.append(content);
- result.append("");
- return result.toString();
- }
-
- public File getFile()
- {
- return this.file;
- }
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/doclets/htmldoclet/HtmlTagletContext.java b/libjava/classpath/tools/gnu/classpath/tools/doclets/htmldoclet/HtmlTagletContext.java
deleted file mode 100644
index 7b89613..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/doclets/htmldoclet/HtmlTagletContext.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/* gnu.classpath.tools.doclets.htmldoclet.HtmlTagletContext
- 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., 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 gnu.classpath.tools.doclets.htmldoclet;
-
-import com.sun.javadoc.Doc;
-import gnu.classpath.tools.taglets.TagletContext;
-
-public class HtmlTagletContext
- extends TagletContext
-{
- private HtmlPage output;
- private boolean isOnSerializedPage;
-
- public HtmlTagletContext(Doc doc, HtmlPage output, boolean isOnSerializedPage)
- {
- super(doc);
- this.output = output;
- this.isOnSerializedPage = isOnSerializedPage;
- }
-
- public HtmlPage getOutput()
- {
- return output;
- }
-
- public boolean isOnSerializedPage()
- {
- return isOnSerializedPage;
- }
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/Driver.java b/libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/Driver.java
deleted file mode 100644
index 29a9e09..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/Driver.java
+++ /dev/null
@@ -1,2451 +0,0 @@
-/* gnu.classpath.tools.doclets.xmldoclet.Driver
- Copyright (C) 2001 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a 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 gnu.classpath.tools.doclets.xmldoclet;
-
-import com.sun.javadoc.*;
-import java.io.*;
-
-import com.sun.tools.doclets.Taglet;
-
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-import java.lang.reflect.Modifier;
-
-import java.text.DateFormat;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Comparator;
-import java.util.HashSet;
-import java.util.TreeSet;
-import java.util.Iterator;
-import java.util.LinkedHashMap;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Locale;
-import java.util.Map;
-import java.util.HashMap;
-import java.util.Properties;
-import java.util.Set;
-import java.util.SortedSet;
-import java.util.StringTokenizer;
-import java.util.TreeMap;
-
-import gnu.classpath.tools.gjdoc.TemporaryStore;
-import gnu.classpath.tools.gjdoc.GjdocPackageDoc;
-
-import gnu.classpath.tools.doclets.PackageGroup;
-import gnu.classpath.tools.doclets.PackageMatcher;
-import gnu.classpath.tools.doclets.InvalidPackageWildcardException;
-
-import gnu.classpath.tools.doclets.xmldoclet.doctranslet.DocTranslet;
-import gnu.classpath.tools.doclets.xmldoclet.doctranslet.DocTransletOptions;
-
-import gnu.classpath.tools.taglets.AuthorTaglet;
-import gnu.classpath.tools.taglets.VersionTaglet;
-import gnu.classpath.tools.taglets.SinceTaglet;
-import gnu.classpath.tools.taglets.DeprecatedTaglet;
-import gnu.classpath.tools.taglets.GenericTaglet;
-import gnu.classpath.tools.doclets.StandardTaglet;
-
-import gnu.classpath.tools.java2xhtml.Java2xhtml;
-
-import gnu.classpath.tools.IOToolkit;
-import gnu.classpath.tools.FileSystemClassLoader;
-
-/**
- * A Doclet which retrieves all information presented by the Doclet
- * API, dumping it to stdout in XML format.
- *
- * @author Julian Scheid
- */
-public class Driver {
-
- public static final String XMLDOCLET_VERSION = "0.6.1";
-
- /**
- * Used for redirecting error messages to /dev/null.
- */
- private static class NullErrorReporter implements DocErrorReporter {
- public void printError(String ignore) {}
- public void printWarning(String ignore) {}
- public void printNotice(String ignore) {}
- }
-
- /*
- * Taglet context constants.
- */
- private static final int CONTEXT_CONSTRUCTOR = 1;
- private static final int CONTEXT_FIELD = 2;
- private static final int CONTEXT_METHOD = 3;
- private static final int CONTEXT_OVERVIEW = 4;
- private static final int CONTEXT_PACKAGE = 5;
- private static final int CONTEXT_TYPE = 6;
-
- /**
- * All XML output will go to this stream.
- */
- private PrintWriter out;
-
- /**
- * How many spaces to indent each XML node level,
- * i.e. Tab size for output.
- */
- private static int indentStep = 1;
-
- /**
- * Won't output superfluous spaces if set to true.
- * If set to false, output will be more legible.
- */
- private boolean compress = false;
-
- /**
- * Won't output warning messages while fixing
- * HTML code if set to true.
- */
- private boolean noHTMLWarn = false;
-
- /**
- * Won't output warning messages when encountering tags
- * that look like an email address if set to true.
- */
- private boolean noEmailWarn = false;
-
- /**
- * Will fix HTML if necessary so that each comment
- * contains valid XML code if set to true. If set
- * to false, HTML code will not be modified and
- * instead encapsulated in a CDATA section.
- */
- private boolean fixHTML = true;
-
- /**
- * User-specified name of the directory where the final version of
- * the generated files will be written to.
- *
- * If no XSLT sheet is given, the XML output will go directly into
- * this directory. Otherwise, XML output will go to a temporary
- * directory and XSLT output will go to this directory.
- */
- private File targetDirectory = null;
-
- /**
- * Directory where XML output will be written to. If no XSLT
- * sheet was given, this is the target directory specified
- * by the user. Otherwise, this is a temporary directory.
- */
- private File xmlTargetDirectory;
-
- /**
- * Contains a number of TargetContexts which describe which XSLT
- * sheet to apply to the output of this doclet, to what directory
- * the XSLT output is written, and which postprocess driver to use
- * to process XSLT output.
- */
- private List targets = new ArrayList();
-
- /**
- * XML text to include at the end of every generated page. Read
- * from the file specified on the command line using -bottomnote.
- * If present, this will be written to the main output file
- * (index.xml) in node /gjdoc:rootDoc/gjdoc:bottomnote.
- */
- private String bottomNote;
-
- /**
- * Brief description of the package set. Can be specified on the
- * command line using -title. This will be written to the main
- * output file (index.xml) in node
- * /gjdoc:rootDoc/gjdoc:title. The HTML generating XSLT sheet
- * uses this for example in window titles.
- */
- private String title;
-
- /**
- * Path to the directory where temporary files should be stored.
- * Defaults to system tempdir, but can be overridden by user
- * with -workpath.
- */
- private String workingPath = System.getProperty("java.io.tmpdir");
-
- /**
- * Temporary directory created by this doclet where all
- * temporary files will be stored in. If no temporary
- * files are needed (i.e. no XSLT postprocessing stage
- * specified by user), this is null.
- */
- private File workingDirectory;
-
- /**
- * Whether to deep-copy the doc-files subdirectory.
- */
- private boolean docFilesSubdirsEnabled = false;
-
- /**
- * Which direct subdirectories of the doc-files directories to exclude.
- * Set of String.
- */
- private Set excludeDocFilesSubDirs = new HashSet();
-
- /**
- * Stores the Doclet API RootDoc we are operating on.
- */
- private RootDoc rootDoc;
-
- /**
- * XML namespace prefix used for all tags, except for HTML
- * tags copied from Javadoc comments. Excluding colon.
- */
- public static final String tagPrefix = "gjdoc";
-
- /**
- * Classpath for loading Taglet classes.
- */
- private String tagletPath = null;
-
- /**
- * The current class that is being processed.
- * Set in outputClassDoc().
- */
- private ClassDoc currentClass;
-
- /**
- * The current member that is being processed.
- * Set in outputMemberDoc().
- */
- private MemberDoc currentMember;
-
- /**
- * The current constructor/method that is being processed.
- * Set in outputExecutableMemberDoc().
- */
- private ExecutableMemberDoc currentExecMember;
-
- /**
- * Mapping from tag type to Taglet for user Taglets specified on
- * the command line.
- */
- private Map tagletMap = new LinkedHashMap();
-
- /**
- * Keeps track of the tags mentioned by the user during option
- * processiong so that an error can be emitted if a tag is
- * mentioned more than once.
- */
- private List mentionedTags = new LinkedList();
-
- /**
- * Stores options to be passed to the DocTranslet.
- */
- private DocTransletOptions docTransletOptions = new DocTransletOptions();
-
- /**
- * Stores the package groups specified in the user
- * options. Contains objects of type PackageGroup.
- */
- private List packageGroups = new LinkedList();
-
- private HtmlRepairer htmlRepairer;
-
- public static boolean start(TemporaryStore _rootDocWrapper) {
- return new Driver().instanceStart((RootDoc)_rootDocWrapper.getAndClear());
- }
-
- /**
- * Official Doclet entry point.
- */
- public static boolean start(RootDoc _rootDoc) {
-
- // Create a new XmlDoclet instance and delegate control.
- TemporaryStore tstore = new TemporaryStore(_rootDoc);
- _rootDoc = null;
- return new Driver().instanceStart((RootDoc)tstore.getAndClear());
- }
-
- /**
- * Output an XML tag describing a com.sun.javadoc.Type object.
- * Assumes that the tag does not have subtags.
- *
- * @param level Level of indentation. Will be multiplied by
- * indentStep to yield actual amount
- * of whitespace inserted at start of line.
- * @param tag Identifier for the XML tag being output.
- * @param type The Javadoc Type to be output.
- */
- protected void outputType(int level, String tag, Type type) {
- outputType(level, tag, type, true);
- }
-
- protected void outputType(int level, String tag, Type type, boolean atomic) {
-
- boolean isIncluded = false;
- ClassDoc typeAsClassDoc = type.asClassDoc();
- String packageName = null;
- if (null != typeAsClassDoc) {
- isIncluded = typeAsClassDoc.isIncluded();
- packageName = typeAsClassDoc.containingPackage().name();
- }
- println(level, "<"+tagPrefix+":"+tag + " typename=\""+type.typeName()+"\""+
- " qualifiedtypename=\""+type.qualifiedTypeName()+"\""
- +(type.dimension().length()==0?"":" dimension=\""+type.dimension()+"\"")
- +(isIncluded?" isIncluded=\"true\"" : "")
- +((null != packageName)?" package=\"" + packageName + "\"" : "")
- +(atomic?"/":"")+">");
- }
-
- protected void outputExecutableMemberDocBody(int level, ExecutableMemberDoc memberDoc) {
-
- currentExecMember = memberDoc;
-
- outputMemberDocBody(level, memberDoc);
-
- Parameter[] parameters = memberDoc.parameters();
- for (int i=0, ilim=parameters.length; i 0) {
- printOpenTag(2, "firstSentenceTags", false);
- outputTags(3, packageDoc.firstSentenceTags(), true, CONTEXT_PACKAGE);
- printCloseTag(0, "firstSentenceTags");
- printOpenTag(2, "inlineTags", false);
- outputTags(3, packageDoc.inlineTags(), true, CONTEXT_PACKAGE);
- printCloseTag(0, "inlineTags");
- }
-
- if (packageDoc.tags().length > 0) {
- printOpenTag(2, "tags");
- outputTags(3, packageDoc.tags(), true, CONTEXT_PACKAGE);
- printCloseTag(2, "tags");
- }
-
- if (packageDoc.seeTags().length > 0) {
- printOpenTag(2, "seeTags");
- outputTags(3, packageDoc.seeTags(), true, CONTEXT_PACKAGE);
- printCloseTag(2, "seeTags");
- }
-
- ClassDoc[] allClasses = (ClassDoc[]) packageDoc.allClasses().clone();
- Arrays.sort(allClasses);
-
- if (false) {
- for (int i = 0, ilim = allClasses.length; i < ilim; ++ i) {
- printAtomTag(2, "containsClass qualifiedtypename=\""+allClasses[i].qualifiedTypeName()+"\"");
- }
- }
-
- printCloseTag(1, "packagedoc");
- }
-
- protected void outputClassDoc(ClassDoc classDoc) throws IOException {
-
- currentClass = classDoc;
-
- println();
- printOpenTag(1, "classdoc xmlns=\"http://www.w3.org/TR/REC-html40\" xmlns:"+tagPrefix+"=\"http://www.gnu.org/software/cp-tools/gjdocxml\" name=\""+classDoc.name()+"\" qualifiedtypename=\""+classDoc.qualifiedName()+"\"");
-
- ClassDoc[] interfaces = classDoc.interfaces();
- for (int i=0, ilim=interfaces.length; i 0) {
- printOpenTag(2, "serializableFields");
-
- FieldDoc[] sfields = classDoc.serializableFields();
- for (int i=0, ilim=sfields.length; i 0) {
- printOpenTag(level, "inlineTags", false);
- outputTags(level+1, doc.inlineTags(), true, context);
- printCloseTag(0, "inlineTags");
- }
-
- if (doc.firstSentenceTags().length > 0) {
- printOpenTag(level, "firstSentenceTags", false);
- outputTags(level+1, doc.firstSentenceTags(), true, context);
- printCloseTag(0, "firstSentenceTags");
- }
-
- if (doc.tags().length > 0) {
- printOpenTag(level, "tags");
- outputTaglets(level+1, doc.tags(), true, context);
- printCloseTag(level, "tags");
- }
-
- if (doc.seeTags().length > 0) {
- printOpenTag(level, "seeTags");
- outputTags(level+1, doc.seeTags(), true, context);
- printCloseTag(level, "seeTags");
- }
-
- SourcePosition position = doc.position();
- if (null != position) {
- printAtomTag(level, "position file=\"" + position.file().getAbsolutePath() + "\" line=\"" + position.line() + "\" column=\"" + position.column() + "\"");
- }
- }
-
- protected void outputProgramElementDocBody(int level, ProgramElementDoc programElementDoc) {
- outputDocBody(level, programElementDoc);
- printAtomTag(level, "containingPackage name=\""+programElementDoc.containingPackage().name()+"\"");
- if (null!=programElementDoc.containingClass()) {
- outputType(level, "containingClass", programElementDoc.containingClass());
- }
- String access;
- if (programElementDoc.isPublic())
- access="public";
- else if (programElementDoc.isProtected())
- access="protected";
- else if (programElementDoc.isPrivate())
- access="private";
- else if (programElementDoc.isPackagePrivate())
- access="package";
- else
- throw new RuntimeException("Huh? "+programElementDoc+" is neither public, protected, private nor package protected.");
- printAtomTag(level, "access scope=\""+access+"\"");
- if (programElementDoc.isFinal())
- printAtomTag(level, "isFinal");
- if (programElementDoc.isStatic())
- printAtomTag(level, "isStatic");
- }
-
- protected void outputTags(int level, Tag[] tags, boolean descend, int context) {
-
- for (int i=0; i");
- }
- //printCloseTag(0 /* don't introduce additional whitespace */, "text");
- }
- else {
- printWarning("Tag got null text: "+tag);
- }
-
- if ((descend && ("@throws".equals(tag.name()) || "@param".equals(tag.name()))) || "@deprecated".equals(tag.name())) {
- if (tag.firstSentenceTags().length>0) {
- printOpenTag(level+1, "firstSentenceTags", false);
- outputTags(level+2, tag.firstSentenceTags(), false, context);
- printCloseTag(0, "firstSentenceTags");
- }
-
- if (tag.inlineTags().length>0) {
- printOpenTag(level+1, "inlineTags", false);
- outputTags(level+2, tag.firstSentenceTags(), false, context);
- printCloseTag(0, "inlineTags");
- }
- }
-
- if (fixHTML && lastTag) {
- String terminateText = htmlRepairer.terminateText();
- if (null != terminateText && terminateText.length() > 0) {
- print(terminateText);
- }
- }
-
- if (!"Text".equals(tag.name())) {
-
- Taglet inlineTaglet = (Taglet)tagletMap.get(tag.name().substring(1));
- if (null != inlineTaglet && inlineTaglet.isInlineTag()) {
- printOpenTag(0, "inlineTagletText", false);
- print(inlineTaglet.toString(tag));
- printCloseTag(0, "inlineTagletText");
- }
-
- printCloseTag(0, "tag", false);
- }
- }
-
- void outputTaglets(int level, Tag[] tags, boolean descend, int context)
- {
- for (Iterator it = tagletMap.keySet().iterator(); it.hasNext(); ) {
- String tagName = (String)it.next();
- Object o = tagletMap.get(tagName);
- Taglet taglet = (Taglet)o;
-
- if (!taglet.isInlineTag()
- && ((context != CONTEXT_CONSTRUCTOR || taglet.inConstructor())
- || (context != CONTEXT_FIELD || taglet.inField())
- || (context != CONTEXT_METHOD || taglet.inMethod())
- || (context != CONTEXT_OVERVIEW || taglet.inOverview())
- || (context != CONTEXT_PACKAGE || taglet.inPackage())
- || (context != CONTEXT_TYPE || taglet.inType()))) {
-
- List tagsOfThisType = new ArrayList();
- for (int i=0, ilim=tags.length; i");
- }
- printCloseTag(0, "tag", false);
- }
- }
- }
- }
- }
- }
-
- /**
- * Inofficial entry point. We got an instance here.
- */
- protected boolean instanceStart(RootDoc _rootDoc) {
-
- this.rootDoc = _rootDoc;
- _rootDoc = null;
-
- boolean xmlOnly = true;
-
- // Set the default Taglet order
-
- registerTaglet(new VersionTaglet());
- registerTaglet(new AuthorTaglet());
- //registerTaglet(new SinceTaglet());
- registerTaglet(new StandardTaglet("deprecated"));
- registerTaglet(new StandardTaglet("see"));
- registerTaglet(new StandardTaglet("param"));
-
- // Set the built-in Taglet filter
-
- AuthorTaglet.setTagletEnabled(false);
- VersionTaglet.setTagletEnabled(false);
- SinceTaglet.setTagletEnabled(true);
- DeprecatedTaglet.setTagletEnabled(true);
-
- try {
- {
-
- // Process command line options passed through to this doclet
-
- TargetContext targetContext = null;
-
- TargetContext htmlTargetContext
- = new TargetContext(DocTranslet.fromClasspath("/doctranslets/html/gjdoc.xsl"),
- targetDirectory);
-
- for (int i=0, ilim=rootDoc.options().length; i= 0) {
- writer.write(buf, 0, nread);
- }
- writer.flush();
- bottomNote = writer.toString();
- writer.close();
- reader.close();
- }
- else if ("-title".equals(optionTag)) {
-
- title = option[1];
- }
- else if ("-workpath".equals(optionTag)) {
-
- workingPath = option[1];
- }
- else if ("-tagletpath".equals(optionTag)) {
-
- if (null == tagletPath) {
- tagletPath = option[1];
- }
- else {
- tagletPath = tagletPath + File.pathSeparator + option[1];
- }
- }
- else if ("-taglet".equals(optionTag)) {
-
- boolean tagletLoaded = false;
-
- String useTagletPath = this.tagletPath;
- if (null == useTagletPath) {
- useTagletPath = System.getProperty("java.class.path");
- }
-
- try {
- Class tagletClass;
- try {
- tagletClass
- = new FileSystemClassLoader(useTagletPath).loadClass(option[1]);
- }
- catch (ClassNotFoundException e) {
- // If not found on specified tagletpath, try default classloader
- tagletClass
- = Class.forName(option[1]);
- }
- Method registerTagletMethod
- = tagletClass.getDeclaredMethod("register", new Class[] { java.util.Map.class });
-
- if (!registerTagletMethod.getReturnType().equals(Void.TYPE)) {
- printError("Taglet class '" + option[1] + "' found, but register method doesn't return void.");
- }
- else if (registerTagletMethod.getExceptionTypes().length > 0) {
- printError("Taglet class '" + option[1] + "' found, but register method contains throws clause.");
- }
- else if ((registerTagletMethod.getModifiers() & (Modifier.STATIC | Modifier.PUBLIC | Modifier.ABSTRACT)) != (Modifier.STATIC | Modifier.PUBLIC)) {
- printError("Taglet class '" + option[1] + "' found, but register method isn't public static, or is abstract..");
- }
- else {
- Map tempMap = new HashMap();
- registerTagletMethod.invoke(null, new Object[] { tempMap });
- tagletLoaded = true;
- String name = (String)tempMap.keySet().iterator().next();
- Taglet taglet = (Taglet)tempMap.get(name);
- tagletMap.put(name, taglet);
- mentionedTags.add(taglet);
- }
- }
- catch (NoSuchMethodException e) {
- printError("Taglet class '" + option[1] + "' found, but doesn't contain the register method.");
- }
- catch (SecurityException e) {
- printError("Taglet class '" + option[1] + "' cannot be loaded: " + e.getMessage());
- }
- catch (InvocationTargetException e) {
- printError("Taglet class '" + option[1] + "' found, but register method throws exception: " + e.toString());
- }
- catch (IllegalAccessException e) {
- printError("Taglet class '" + option[1] + "' found, but there was a problem when accessing the register method: " + e.toString());
- }
- catch (IllegalArgumentException e) {
- printError("Taglet class '" + option[1] + "' found, but there was a problem when accessing the register method: " + e.toString());
- }
- catch (ClassNotFoundException e) {
- printError("Taglet class '" + option[1] + "' cannot be found.");
- }
- if (!tagletLoaded) {
- return false;
- }
- }
- else if ("-author".equals(optionTag)) {
- AuthorTaglet.setTagletEnabled(true);
- }
- else if ("-version".equals(optionTag)) {
- VersionTaglet.setTagletEnabled(true);
- }
- else if ("-nosince".equals(optionTag)) {
- SinceTaglet.setTagletEnabled(false);
- }
- else if ("-nodeprecated".equals(optionTag)) {
- DeprecatedTaglet.setTagletEnabled(false);
- }
- else if ("-authormail".equals(optionTag)) {
-
- if ("no-replace".equalsIgnoreCase(option[1])) {
- AuthorTaglet.setEmailReplacementType(AuthorTaglet.EmailReplacement.NO_REPLACEMENT);
- }
- else if ("mailto-name".equalsIgnoreCase(option[1])) {
- AuthorTaglet.setEmailReplacementType(AuthorTaglet.EmailReplacement.MAILTO_NAME);
- }
- else if ("name-mailto-address".equalsIgnoreCase(option[1])) {
- AuthorTaglet.setEmailReplacementType(AuthorTaglet.EmailReplacement.NAME_MAILTO_ADDRESS);
- }
- else if ("name-mangled-address".equalsIgnoreCase(option[1])) {
- AuthorTaglet.setEmailReplacementType(AuthorTaglet.EmailReplacement.NAME_MANGLED_ADDRESS);
- }
- else {
- printError("Invalid value for option '-authortag-email'. Allowed values are:"
- + " no-replace, mailto-name, name-mailto-address, name-mangled-address.");
- return false;
- }
- }
- else if ("-mailmangledot".equals(optionTag)) {
- AuthorTaglet.setDotReplacement(option[1]);
- }
- else if ("-mailmangleat".equals(optionTag)) {
- AuthorTaglet.setAtReplacement(option[1]);
- }
- else if ("-docfilessubdirs".equals(optionTag)) {
- docFilesSubdirsEnabled = true;
- }
- else if ("-excludedocfilessubdir".equals(optionTag)) {
- StringTokenizer st = new StringTokenizer(option[1]);
- while (st.hasMoreTokens()) {
- excludeDocFilesSubDirs.add(st.nextToken());
- }
- }
- else if ("-nonavbar".equals(optionTag)) {
- docTransletOptions.nonavbar = true;
- }
- else if ("-noindex".equals(optionTag)) {
- docTransletOptions.noindex = true;
- }
- else if ("-notree".equals(optionTag)) {
- docTransletOptions.notree = true;
- }
- else if ("-nocomment".equals(optionTag)) {
- docTransletOptions.nocomment = true;
- }
- else if ("-nohelp".equals(optionTag)) {
- docTransletOptions.nohelp = true;
- }
- else if ("-splitindex".equals(optionTag)) {
- docTransletOptions.splitindex = true;
- }
- else if ("-linksource".equals(optionTag)) {
- docTransletOptions.linksource = true;
- }
- else if ("-windowtitle".equals(optionTag)) {
- docTransletOptions.windowtitle = option[1];
- }
- else if ("-helpfile".equals(optionTag)) {
- docTransletOptions.helpfile = new File(option[1]).toURL().toString();
- }
- else if ("-stylesheetfile".equals(optionTag)) {
- docTransletOptions.stylesheetfile = new File(option[1]).toURL().toString();
- }
- else if ("-header".equals(optionTag)) {
- docTransletOptions.header = option[1];
- }
- else if ("-footer".equals(optionTag)) {
- docTransletOptions.footer = option[1];
- }
- else if ("-bottom".equals(optionTag)) {
- docTransletOptions.bottom = option[1];
- }
- else if ("-doctitle".equals(optionTag)) {
- docTransletOptions.doctitle = option[1];
- }
- else if ("-nodeprecatedlist".equals(optionTag)) {
- docTransletOptions.nodeprecatedlist = true;
- }
- else if ("-uses".equals(optionTag)) {
- docTransletOptions.uses = true;
- }
- else if ("-group".equals(optionTag)) {
- if (!processGroupOption(option[1], option[2])) {
- printError("Invalid package wildcard list in -group option \"" + option[1] + "\" " + option[2]);
- return false;
- }
- }
- else if ("-tag".equals(optionTag)) {
- String tagSpec = option[1];
- boolean validTagSpec = false;
- int ndx1 = tagSpec.indexOf(':');
- if (ndx1 < 0) {
- Taglet taglet = (Taglet)tagletMap.get(tagSpec);
- if (null == taglet) {
- printError("There is no standard tag '" + tagSpec + "'.");
- }
- else {
- if (mentionedTags.contains(taglet)) {
- printError("Tag '" + tagSpec + "' has been added or moved before.");
- }
- else {
- mentionedTags.add(taglet);
-
- // re-append taglet
- tagletMap.remove(tagSpec);
- tagletMap.put(tagSpec, taglet);
- }
- }
- }
- else {
- int ndx2 = tagSpec.indexOf(':', ndx1 + 1);
- if (ndx2 > ndx1 && ndx2 < tagSpec.length() - 1) {
- String tagName = tagSpec.substring(0, ndx1);
- String tagHead = null;
- if (tagSpec.charAt(ndx2 + 1) == '\"') {
- if (tagSpec.charAt(tagSpec.length() - 1) == '\"') {
- tagHead = tagSpec.substring(ndx2 + 2, tagSpec.length() - 1);
- validTagSpec = true;
- }
- }
- else {
- tagHead = tagSpec.substring(ndx2 + 1);
- validTagSpec = true;
- }
-
- boolean tagScopeOverview = false;
- boolean tagScopePackages = false;
- boolean tagScopeTypes = false;
- boolean tagScopeConstructors = false;
- boolean tagScopeMethods = false;
- boolean tagScopeFields = false;
- boolean tagDisabled = false;
-
- tag_option_loop:
- for (int n=ndx1+1; n:Xaoptcmf:\".");
- }
- }
- }
-
- // Use current directory if target directory hasn't been set.
- if (null == targetDirectory) {
- targetDirectory = new File(System.getProperty("user.dir"));
- }
- if (null != targetContext) {
- targetContext.setTargetDirectory(targetDirectory);
- }
-
- // It is illegal to specify targets AND -xmlonly.
-
- if (xmlOnly && targets.size() > 0) {
-
- printError("You can only specify one of -xmlonly and a target format.");
- return false;
- }
-
- // If no target was specified and XML only was not
- // requested, use HTML as default target.
-
- if (!xmlOnly && targets.size() == 0) {
- targets.add(targetContext = htmlTargetContext);
- }
-
- // Set the same target directory for all output.
-
- // FIXME: Allow separate target directories for different
- // output formats.
-
- for (Iterator it = targets.iterator(); it.hasNext(); ) {
- TargetContext t = (TargetContext)it.next();
- t.setTargetDirectory(targetDirectory);
- }
-
- // Create temporary directory if necessary
-
- if (xmlOnly) {
-
- xmlTargetDirectory = targetDirectory;
- }
- else {
-
- File workingTopDirectory = new File(workingPath);
-
- workingDirectory = new File(workingTopDirectory, "gjdoc.tmp."+System.currentTimeMillis());
-
- if (!workingDirectory.mkdir()) {
- printError("Cannot create temporary directory at "+System.getProperty("java.io.tmpdir"));
- return false;
- }
-
- File xmlTempDirectory = new File(workingDirectory, "xmloutput");
-
- if (!xmlTempDirectory.mkdir()) {
- printError("Cannot create temporary directory for XML output at "+System.getProperty("java.io.tmpdir"));
- return false;
- }
-
- xmlTargetDirectory = xmlTempDirectory;
- }
-
- // Create target directory if necessary
-
- if (!targetDirectory.exists()) {
- printNotice("Creating destination directory: \""
- + targetDirectory + "\"");
- if (!targetDirectory.mkdirs()) {
- printError("Failed to create destination directory \""
- + targetDirectory + "\"");
- return false;
- }
- }
-
- // Check for deprecation
-
- boolean hasDeprecatedClasses = false;
- boolean hasDeprecatedInterfaces = false;
- boolean hasDeprecatedExceptions = false;
- boolean hasDeprecatedErrors = false;
- boolean hasDeprecatedMethods = false;
- boolean hasDeprecatedFields = false;
-
- {
- ClassDoc[] classes = rootDoc.classes();
- for (int i = 0, ilim = classes.length; i < ilim; ++ i) {
- ClassDoc c = classes[i];
- Tag[] deprecatedTags = c.tags("deprecated");
- if (null != deprecatedTags && 0 != deprecatedTags.length) {
- if (c.isInterface()) {
- hasDeprecatedInterfaces = true;
- }
- else if (c.isException()) {
- hasDeprecatedExceptions = true;
- }
- else if (c.isError()) {
- hasDeprecatedErrors = true;
- }
- else /*if (c.isOrdinaryClass())*/ {
- hasDeprecatedClasses = true;
- }
- }
-
- MethodDoc[] methods = c.methods();
- for (int j = 0, jlim = methods.length; j < jlim; ++ j) {
- MethodDoc m = methods[j];
- deprecatedTags = m.tags("deprecated");
- if (null != deprecatedTags && 0 != deprecatedTags.length) {
- hasDeprecatedMethods = true;
- }
- }
-
- FieldDoc[] fields = c.fields();
- for (int j = 0, jlim = fields.length; j < jlim; ++ j) {
- FieldDoc f = fields[j];
- deprecatedTags = f.tags("deprecated");
- if (null != deprecatedTags && 0 != deprecatedTags.length) {
- hasDeprecatedFields = true;
- }
- }
- }
- }
-
- htmlRepairer = new HtmlRepairer(rootDoc, noHTMLWarn, noEmailWarn,
- currentClass, currentMember,
- false);
-
- collectUsage();
-
- // Begin XML generation
-
- printNotice("Writing XML Index file...");
-
- // Assign output stream
-
- setTargetFile("index.xml");
-
- // Output XML document header
-
- println(0, "");
- println("");
- println();
- printOpenTag(0, "rootdoc xmlns=\"http://www.w3.org/TR/REC-html40\" xmlns:gjdoc=\"http://www.gnu.org/software/cp-tools/gjdocxml\"");
-
- println();
- println(1, "");
-
- if (rootDoc.firstSentenceTags().length > 0) {
- printOpenTag(2, "firstSentenceTags", false);
- outputTags(3, rootDoc.firstSentenceTags(), true, CONTEXT_PACKAGE);
- printCloseTag(0, "firstSentenceTags");
- }
-
- if (rootDoc.inlineTags().length > 0) {
- printOpenTag(2, "inlineTags");
- outputTags(3, rootDoc.inlineTags(), true, CONTEXT_PACKAGE);
- printCloseTag(2, "inlineTags");
- }
-
- if (null != bottomNote) {
- printOpenTag(1, "bottomnote");
- print(bottomNote);
- printCloseTag(1, "bottomnote");
- }
-
- if (null != title) {
- printOpenTag(1, "title");
- println(2, title);
- printCloseTag(1, "title");
- }
-
- printOpenTag(1, "created");
- println(2, DateFormat.getDateInstance(DateFormat.LONG, Locale.US).format(new java.util.Date()));
- printCloseTag(1, "created");
-
- if (hasDeprecatedClasses) printAtomTag(1, "hasDeprecatedClasses");
- if (hasDeprecatedInterfaces) printAtomTag(1, "hasDeprecatedInterfaces");
- if (hasDeprecatedExceptions) printAtomTag(1, "hasDeprecatedExceptions");
- if (hasDeprecatedErrors) printAtomTag(1, "hasDeprecatedErrors");
- if (hasDeprecatedMethods) printAtomTag(1, "hasDeprecatedMethods");
- if (hasDeprecatedFields) printAtomTag(1, "hasDeprecatedFields");
-
- // Output summary of all classes specified on command line
-
- println();
- println(1, "");
- ClassDoc[] specifiedClasses = rootDoc.specifiedClasses();
- for (int i=0, ilim=specifiedClasses.length; i");
- PackageDoc[] specifiedPackages = rootDoc.specifiedPackages();
- for (int i=0, ilim=specifiedPackages.length; i");
- {
- Iterator packageGroupIt = packageGroups.iterator();
- while (packageGroupIt.hasNext()) {
- PackageGroup packageGroup = (PackageGroup)packageGroupIt.next();
- SortedSet groupedPackages = packageGroup.getPackages();
- if (groupedPackages.isEmpty()) {
- printWarning("Package group named '"
- + packageGroup.getName() + "' didn't match any packages.");
- }
- else {
- printOpenTag(1, "packagegroup name=\"" + packageGroup.getName() + "\"");
- Iterator groupedPackageIt = groupedPackages.iterator();
- while (groupedPackageIt.hasNext()) {
- PackageDoc groupedPackageDoc = (PackageDoc)groupedPackageIt.next();
- printAtomTag(2, "package name=\"" + groupedPackageDoc.name() + "\"");
- }
- printCloseTag(1, "packagegroup");
- }
- }
- packageGroups = null;
- }
-
- // Output information on all packages for which documentation
- // has been made available via the Doclet API
-
- println();
- println(1, "");
- PackageDoc[] packages = rootDoc.specifiedPackages();
- for (int i=0, ilim=packages.length; i");
- ClassDoc[] sumclasses = rootDoc.classes();
- for (int i=0, ilim=sumclasses.length; i");
- ClassDoc[] classes = rootDoc.classes();
- String prevPackageName = null;
- for (int i = 0, ilim = classes.length; i < ilim; ++ i) {
- ClassDoc c = classes[i];
-
- if (isVerbose()) {
- printNotice("Writing XML information for "+c.qualifiedName()+"...");
- }
- else {
- String packageName = c.containingPackage().name();
- if (null == prevPackageName || !packageName.equals(prevPackageName)) {
- printNotice("Writing XML information for "+packageName+"...");
- prevPackageName = packageName;
- }
- }
-
- setTargetFile(c.qualifiedName().replace('/','.')+".xml");
-
- println("");
- println("");
-
- outputClassDoc(c);
-
- closeTargetFile();
- }
- classes = null;
- }
-
- // Copy DTD files to temporary directory
-
- // FIXME: try to solve this via jar: URLs. but this will
- // probably break libxmlj compatibility (?)
-
- String[] resources = new String[] {
- "gjdoc.dtd",
- "gjdoc-alphaindex.dtd",
- "dbcentx.mod",
- "ent/iso-amsa.ent",
- "ent/iso-amsb.ent",
- "ent/iso-amsc.ent",
- "ent/iso-amsn.ent",
- "ent/iso-amso.ent",
- "ent/iso-amsr.ent",
- "ent/iso-box.ent",
- "ent/iso-cyr1.ent",
- "ent/iso-cyr2.ent",
- "ent/iso-dia.ent",
- "ent/iso-grk1.ent",
- "ent/iso-grk2.ent",
- "ent/iso-grk3.ent",
- "ent/iso-grk4.ent",
- "ent/iso-lat1.ent",
- "ent/iso-lat2.ent",
- "ent/iso-num.ent",
- "ent/iso-pub.ent",
- "ent/iso-tech.ent",
- };
-
- File tempDtdDirectory = new File(xmlTargetDirectory, "dtd");
- File tempDtdEntDirectory = new File(tempDtdDirectory, "ent");
-
- if ((tempDtdDirectory.exists() || tempDtdDirectory.mkdir())
- && (tempDtdEntDirectory.exists() || tempDtdEntDirectory.mkdir())) {
- for (int i = 0; i < resources.length; ++ i) {
- copyResourceToFile("/dtd/" + resources[i],
- new File(tempDtdDirectory, resources[i]));
- }
- }
- else {
- printError("Cannot create temporary directories for DTD data at " + tempDtdDirectory);
- return false;
- }
-
- // Copy package data-dir directory
-
- {
- PackageDoc[] packages = rootDoc.specifiedPackages();
- for (int i=0, ilim=packages.length; irm -Rf directory
- *
- * @return true on success
- */
- private static boolean deleteRecursive(File directory) {
-
- boolean success = true;
-
- File[] files = directory.listFiles();
-
- for (int i=0, ilim=files.length; i");
- }
-
- /**
- * Prints an open tag at the given indentation level.
- */
- protected void printOpenTag(int level, String tag) {
- printOpenTag(level, replaceCharsInTag(tag), true);
- }
-
- /**
- * Prints an open tag at the given indentation level and
- * conditionally appends a newline (if not in tight mode).
- */
- protected void printOpenTag(int level, String tag, boolean appendNewline) {
- if (appendNewline && !compress) {
- println(level, "<"+tagPrefix+":"+replaceCharsInTag(tag)+">");
- }
- else {
- print(level, "<"+tagPrefix+":"+replaceCharsInTag(tag)+">");
- }
- }
-
- /**
- * Prints a close tag at the given indentation level.
- */
- protected void printCloseTag(int level, String tag) {
- printCloseTag(level, tag, true);
- }
-
- /**
- * Prints a close tag at the given indentation level and
- * conditionally appends a newline (if not in tight mode).
- */
- protected void printCloseTag(int level, String tag, boolean appendNewline) {
- if (appendNewline && !compress) {
- println(level, ""+tagPrefix+":"+replaceCharsInTag(tag)+">");
- }
- else {
- print(level, ""+tagPrefix+":"+replaceCharsInTag(tag)+">");
- }
- }
-
- public static int optionLength(String option) {
- if ("-d".equals(option)) return 2;
- else if ("-fixhtml".equals(option)) return 1;
- else if ("-compress".equals(option)) return 1;
- else if ("-nohtmlwarn".equals(option)) return 1;
- else if ("-noemailwarn".equals(option)) return 1;
- else if ("-indentstep".equals(option)) return 2;
- else if ("-xslsheet".equals(option)) return 2;
- else if ("-xsltdriver".equals(option)) return 2;
- else if ("-postprocess".equals(option)) return 2;
- else if ("-genhtml".equals(option)) return 1;
- else if ("-geninfo".equals(option)) return 1;
- else if ("-gendocbook".equals(option)) return 1;
- else if ("-xmlonly".equals(option)) return 1;
- else if ("-bottomnote".equals(option)) return 2;
- else if ("-workpath".equals(option)) return 2;
- else if ("-title".equals(option)) return 2;
- else if ("-tagletpath".equals(option)) return 2;
- else if ("-taglet".equals(option)) return 2;
- else if ("-authormail".equals(option)) return 2;
- else if ("-mailmangledot".equals(option)) return 2;
- else if ("-mailmangleat".equals(option)) return 2;
- else if ("-noindex".equals(option)) return 1;
- else if ("-nocomment".equals(option)) return 1;
- else if ("-notree".equals(option)) return 1;
- else if ("-nohelp".equals(option)) return 1;
- else if ("-nonavbar".equals(option)) return 1;
- else if ("-splitindex".equals(option)) return 1;
- else if ("-author".equals(option)) return 1;
- else if ("-version".equals(option)) return 1;
- else if ("-nosince".equals(option)) return 1;
- else if ("-nodeprecated".equals(option)) return 1;
- else if ("-linksource".equals(option)) return 1;
- else if ("-windowtitle".equals(option)) return 2;
- else if ("-helpfile".equals(option)) return 2;
- else if ("-stylesheetfile".equals(option)) return 2;
- else if ("-tag".equals(option)) return 2;
- else if ("-header".equals(option)) return 2;
- else if ("-footer".equals(option)) return 2;
- else if ("-bottom".equals(option)) return 2;
- else if ("-doctitle".equals(option)) return 2;
- else if ("-nodeprecatedlist".equals(option)) return 1;
- else if ("-uses".equals(option)) return 1;
- else if ("-group".equals(option)) return 3;
-
- else return -1;
- }
-
- public static boolean validOptions(String[][] options) {
- return true;
- }
-
-
- /**
- * Workaround for non well-formed comments: fix tag contents
- * by replacing < with <,
- * > with > and
- * & with &.
- *
- * @param tagContent String to process
- *
- * @return given String with all special characters replaced by
- * HTML entities.
- */
- private static String replaceCharsInTag(String tagContent) {
- return
- replaceString(
- replaceString(
- replaceString(
- tagContent,
- "<", "<"
- ),
- ">", ">"
- ),
- "&", "&"
- );
- }
-
- /**
- * Replaces all occurences of string needle within string
- * haystack by string replacement.
- *
- * @param haystack The string to search and replace in.
- * @param needle The string which is searched for.
- * @param replacement The string by which every occurence of needle is replaced.
- */
- private static String replaceString(String haystack, String needle, String replacement) {
- int ndx = haystack.indexOf(needle);
- if (ndx<0)
- return haystack;
- else
- return haystack.substring(0, ndx) + replacement
- + replaceString(haystack.substring(ndx+needle.length()), needle, replacement);
- }
-
- protected void setTargetFile(String filename) throws IOException {
-
- OutputStream fileOut = new FileOutputStream(new File(xmlTargetDirectory, filename));
- out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(fileOut, "UTF8")));;
- }
-
- protected void closeTargetFile() {
-
- out.flush();
- out.close();
- }
-
- private String cdata(String str) {
-
- if (null==str) {
- return str;
- } // end of if ((null==str)
-
- StringBuffer rc = new StringBuffer();
- for (int i=0; i=0x20 && c<=0xd7ff) || (c>=0xe000 && c<=0xfffd) || (c>=0x10000 && c<=0x10ffff)) {
- rc.append(c);
- }
- else {
- printWarning("Invalid Unicode character 0x"+Integer.toString(c, 16)+" in javadoc markup has been stripped.");
- } // end of else
-
- }
- return rc.toString();
- }
-
- static void copyResourceToFile(String resourceName, File target) throws IOException {
-
- InputStream in = Driver.class.getResourceAsStream(resourceName);
-
- if (null != in) {
-
- FileOutputStream out = new FileOutputStream(target);
- int size;
- byte[] buffer = new byte[512];
- while ((size = in.read(buffer)) >= 0) {
- out.write(buffer, 0, size);
- }
- out.close();
- }
- else {
-
- throw new IOException("Can't find resource named "+resourceName);
- }
- }
-
- private void printError(String error) {
- if (null != rootDoc) {
- rootDoc.printError(error);
- }
- else {
- System.err.println("ERROR: "+error);
- }
- }
-
- private void printWarning(String warning) {
- if (null != rootDoc) {
- rootDoc.printWarning(warning);
- }
- else {
- System.err.println("WARNING: "+warning);
- }
- }
-
- private void printNotice(String notice) {
- if (null != rootDoc) {
- rootDoc.printNotice(notice);
- }
- else {
- System.err.println(notice);
- }
- }
-
- /**
- * Copy the contents of the input directory to the output
- * directory. The output directory must exist.
- */
- private void copyPackageDataDir(GjdocPackageDoc packageDoc) throws IOException {
- File docFilesSourceDirectory
- = new File(packageDoc.packageDirectory(), "doc-files");
- File docFilesTargetDirectory
- = new File(this.targetDirectory,
- packageDoc.name().replace('.', File.separatorChar));
- if (docFilesSourceDirectory.exists()) {
- printNotice("Copying files from " + docFilesSourceDirectory);
- copyDirectory(docFilesSourceDirectory, docFilesTargetDirectory,
- docFilesSubdirsEnabled,
- excludeDocFilesSubDirs);
- }
- }
-
- /**
- * Recursively copy the contents of the input directory to the
- * output directory. The output directory must exist.
- */
- private static void copyDirectory(File sourceDir, File targetDir,
- boolean recursive,
- Set excludeDirs) throws IOException {
- if (!targetDir.exists() && !targetDir.mkdirs()) {
- throw new IOException("Cannot create directory " + targetDir);
- }
-
- File[] sourceFiles = sourceDir.listFiles();
- for (int i=0; i= 0) {
- out.write(buf, 0, nread);
- }
- in.close();
- out.close();
- }
-
- private void createIndexByName() throws IOException {
- // Create index
-
- // Collect index
-
- Map indexMap = new TreeMap(new Comparator() {
- public int compare(Object o1, Object o2) {
- return o1.toString().toLowerCase().compareTo(o2.toString().toLowerCase());
- }
- });
-
- // Add packages to index
-
- PackageDoc[] packages = rootDoc.specifiedPackages();
- for (int i=0, ilim=packages.length; i 0) {
- signature.append(", ");
- }
- signature.append(parameters[k].typeName());
- }
- signature.append(')');
- indexMap.put(signature.toString(), method);
- }
- }
-
- // Assign output stream
-
- setTargetFile("alphaindex.xml");
-
- // Output XML document header
-
- println(0, "");
- println("");
- println();
- printOpenTag(0, "alphaindex xmlns=\"http://www.w3.org/TR/REC-html40\" xmlns:gjdoc=\"http://www.gnu.org/software/cp-tools/gjdocxml\"");
-
- Iterator it = indexMap.keySet().iterator();
-
- char previousCategoryLetter = '\0';
- boolean categoryOpen = false;
-
- while (it.hasNext()) {
- String key = (String)it.next();
- Doc entry = (Doc)indexMap.get(key);
-
- char firstChar = Character.toUpperCase(key.charAt(0));
- if (firstChar != previousCategoryLetter) {
- if (categoryOpen) {
- printCloseTag(1, "category");
- }
- printOpenTag(1, "category letter=\"" + firstChar + "\"");
- categoryOpen = true;
- previousCategoryLetter = firstChar;
- }
-
- printOpenTag(2, "entry name=\"" + key + "\"");
- if (entry instanceof PackageDoc) {
- printAtomTag(3, "isPackage");
- }
- else if (entry instanceof ClassDoc) {
- printAtomTag(3, "isClass");
- ClassDoc centry = (ClassDoc)entry;
- currentClass = centry;
- printAtomTag(3, "containingPackage name=\"" + centry.containingPackage().name() + "\"");
- if (null != centry.containingClass()) {
- printAtomTag(3, "containingClass name=\"" + centry.containingClass().name() + "\"");
- }
- if (centry.isInterface()) {
- printAtomTag(3, "isInterface");
- }
- if (centry.isException()) {
- printAtomTag(3, "isException");
- }
- if (centry.isError()) {
- printAtomTag(3, "isError");
- }
- if (centry.isOrdinaryClass()) {
- printAtomTag(3, "isOrdinaryClass");
- }
- }
- else if (entry instanceof ProgramElementDoc) {
- ProgramElementDoc pentry = (ProgramElementDoc)entry;
- currentClass = pentry.containingClass();
- printAtomTag(3, "containingPackage name=\"" + pentry.containingPackage().name() + "\"");
- printAtomTag(3, "containingClass name=\"" + pentry.containingClass().name() + "\"");
- if (pentry.isMethod()) {
- printAtomTag(3, "isMethod");
- ExecutableMemberDoc mentry = (ExecutableMemberDoc)pentry;
- printAtomTag(3, "signature full=\""+mentry.signature()+"\" flat=\""+mentry.flatSignature()+"\"");
- printAtomTag(3, "method name=\"" + mentry.name() + "\"");
- }
- if (pentry.isField()) {
- printAtomTag(3, "isField");
- }
- }
-
- Tag[] tags = entry.firstSentenceTags();
- for (int i=0, ilim=tags.length; i0) {
- printOpenTag(3, "firstSentenceTags", false);
- outputTags(4, tag.firstSentenceTags(), false, CONTEXT_TYPE);
- printCloseTag(3, "firstSentenceTags");
- }
- }
-
-
- printCloseTag(2, "entry");
- }
-
- if (categoryOpen) {
- printCloseTag(1, "category");
- }
-
- printCloseTag(0, "alphaindex");
-
- closeTargetFile();
- }
-
- private static class UsageType
- {
- public static final UsageType CLASS_DERIVED_FROM = new UsageType("class-derived-from");
- public static final UsageType FIELD_OF_TYPE = new UsageType("field-of-type");
- public static final UsageType METHOD_WITH_RETURN_TYPE = new UsageType("method-with-return-type");
- public static final UsageType METHOD_WITH_PARAMETER_TYPE = new UsageType("method-with-parameter-type");
- public static final UsageType METHOD_WITH_THROWN_TYPE = new UsageType("method-with-thrown-type");
- public static final UsageType CONSTRUCTOR_WITH_PARAMETER_TYPE = new UsageType("constructor-with-parameter-type");
- public static final UsageType CONSTRUCTOR_WITH_THROWN_TYPE = new UsageType("constructor-with-thrown-type");
- private String id;
-
- private UsageType(String id)
- {
- this.id = id;
- }
-
- public String toString() {
- return "UsageType{id=" + id + "}";
- }
-
- public String getId() {
- return id;
- }
- }
-
- /**
- * ClassDoc -> (PackageDoc -> (UsageType -> (Set of Doc)))
- */
- private Map usedClassToPackagesMap = new HashMap();
-
- private void addUsedBy(ClassDoc usedClass, UsageType usageType, Doc user, PackageDoc userPackage)
- {
- Map packageToUsageTypeMap = (Map)usedClassToPackagesMap.get(usedClass);
- if (null == packageToUsageTypeMap) {
- packageToUsageTypeMap = new HashMap();
- usedClassToPackagesMap.put(usedClass, packageToUsageTypeMap);
- }
-
- Map usageTypeToUsersMap = (Map)packageToUsageTypeMap.get(userPackage);
- if (null == usageTypeToUsersMap) {
- usageTypeToUsersMap = new HashMap();
- packageToUsageTypeMap.put(userPackage, usageTypeToUsersMap);
- }
-
- Set userSet = (Set)usageTypeToUsersMap.get(usageType);
- if (null == userSet) {
- userSet = new TreeSet(); // FIXME: we need the collator from Main here
- usageTypeToUsersMap.put(usageType, userSet);
- }
- userSet.add(user);
- }
-
- /**
- * Create the cross reference database.
- */
- private void collectUsage() {
-
- ClassDoc[] classes = rootDoc.classes();
- for (int i = 0, ilim = classes.length; i < ilim; ++ i) {
- ClassDoc clazz = classes[i];
-
- // classes derived from
- for (ClassDoc superclass = clazz.superclass(); superclass != null;
- superclass = superclass.superclass()) {
- addUsedBy(superclass, UsageType.CLASS_DERIVED_FROM, clazz, clazz.containingPackage());
- }
-
- FieldDoc[] fields = clazz.fields();
- for (int j = 0, jlim = fields.length; j < jlim; ++ j) {
- FieldDoc field = fields[j];
-
- // fields of type
- ClassDoc fieldType = field.type().asClassDoc();
- if (null != fieldType) {
- addUsedBy(fieldType, UsageType.FIELD_OF_TYPE,
- field, clazz.containingPackage());
- }
- }
-
- MethodDoc[] methods = clazz.methods();
- for (int j = 0, jlim = methods.length; j < jlim; ++ j) {
- MethodDoc method = methods[j];
-
- // methods with return type
-
- ClassDoc returnType = method.returnType().asClassDoc();
- if (null != returnType) {
- addUsedBy(returnType, UsageType.METHOD_WITH_RETURN_TYPE,
- method, clazz.containingPackage());
- }
- Parameter[] parameters = method.parameters();
- for (int k=0; k");
- }
- */
-
- protected void outputClassDoc(ClassDoc classDoc)
- throws IOException
- {
- super.outputClassDoc(classDoc);
- //outputSourcePosition(level, doc.position());
- }
-
- protected void outputFieldDocBody(int level, FieldDoc fieldDoc) {
- super.outputFieldDocBody(level, fieldDoc);
- //println(level, ""+fieldDoc.constantValueExpression()+"");
- }
-
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/HtmlRepairer.java b/libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/HtmlRepairer.java
deleted file mode 100644
index 582a45b..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/HtmlRepairer.java
+++ /dev/null
@@ -1,690 +0,0 @@
-/* gnu.classpath.tools.doclets.xmldoclet.HtmlRepairer.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., 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 gnu.classpath.tools.doclets.xmldoclet;
-
-import java.io.*;
-import java.util.*;
-import com.sun.javadoc.DocErrorReporter;
-import com.sun.javadoc.ClassDoc;
-import com.sun.javadoc.MemberDoc;
-
-/**
- * Provides methods for tidying up HTML source.
- *
- * @author Julian Scheid
- */
-public final class HtmlRepairer {
-
- private static class TagInfo {
-
- private Set parentTags = new HashSet();
-
- public TagInfo(String parentTag) {
- this.parentTags.add(parentTag);
- }
-
- public TagInfo(String[] parentTagArr) {
- for (int i=0; i element");
- }
- }
-
- private void haveStartOrEndTag(String tag) {
-
- boolean _isLeadingTag = isLeadingTag;
- isLeadingTag = false;
-
- tag = tag.trim();
-
- boolean isEndTag = tag.startsWith("/");
- boolean isAtomTag = tag.endsWith("/");
-
- if (isEndTag && isAtomTag) {
- // got something like '' which is invalid.
- // suppose a close tag was intended.
- tag = tag.substring(0, tag.length()-1);
- }
-
- if (tag.length() < 1) {
- printWarning("Deleting broken tag");
- return;
- }
-
- String tagName = tag.substring(isEndTag?1:0, isAtomTag?tag.length()-1:tag.length());
- String tagAttributes = "";
-
- for (int i=0; i=0) {
- tagAttributes = tagName.substring(i).trim();
- tagName = tagName.substring(0, i);
- break;
- }
- }
-
- if (!isEndTag && tagName.indexOf('@')>0) {
- if (!noEmailWarn) {
- printWarning("Tag looks like email address: <"+tagName+">");
- }
- output.append("<"+tag+">");
- return;
- }
-
- tagName = tagName.toLowerCase();
-
- if (_isLeadingTag && "p".equals(tagName) && !isEndTag && throwAwayLeadingPara) {
- return;
- }
-
- if ("p".equals(tagName) || "br".equals(tagName) || "hr".equals(tagName)) {
- // throw away
and
- if (isEndTag) {
- return;
- }
- // make sure every
is a
and every is a
- else if (!isAtomTag) {
- tag += "/";
- isAtomTag = true;
- }
- }
-
- if (isEndTag) {
-
- // check whether this close tag is on the stack
- // if yes, close all tags up to this tag
- if (tagStack.contains(tagName)) {
- String popped;
- do {
- popped = (String)tagStack.pop();
- if (!popped.equals(tagName))
- printWarning("Inserting '"+popped+">");
- output.append(""+popped+">");
- }
- while (!popped.equals(tagName));
- }
- // if not, just throw it away
- else {
- printWarning("Deleting <"+tag+">");
- }
- }
- else {
-
- final int STATE_INITIAL = 1;
- final int STATE_EXPECT_ATTRIBUTENAME = 2;
- final int STATE_UNQUOTED_ATTRIBUTEVALUE = 3;
- final int STATE_SINGLEQUOTE_ATTRIBUTEVALUE = 4;
- final int STATE_DOUBLEQUOTE_ATTRIBUTEVALUE = 5;
- final int STATE_EXPECT_ATTRIBUTEVALUE = 6;
- final int STATE_EXPECT_EQUALSIGN = 7;
-
- int state = STATE_INITIAL;
-
- String newAttributes = "";
- String attributeName = null;
- StringBuffer buf = new StringBuffer();
-
- char[] attrsAsChars = tagAttributes.toCharArray();
- for (int i=0, ilim=attrsAsChars.length+1; i=0){
- continue;
- }
- else if (-1==c) {
- continue;
- }
- else {
- state = STATE_EXPECT_ATTRIBUTENAME;
- buf.append((char)c);
- }
- break;
-
- case STATE_EXPECT_ATTRIBUTENAME:
- if ('='==c) {
- attributeName = buf.toString();
- buf.setLength(0);
- state = STATE_EXPECT_ATTRIBUTEVALUE;
- }
- else if (-1==c) {
- attributeName = buf.toString();
- buf.setLength(0);
- printWarning("In Tag '"+tag+"':\nAttribute name without a value, inserting value =\""+attributeName+"\"");
- }
- else if (" \t\r\n".indexOf(c)>=0) {
- state = STATE_EXPECT_EQUALSIGN;
- }
- else {
- buf.append((char)c);
- }
- break;
-
- case STATE_EXPECT_EQUALSIGN:
- if (" \t\r\n".indexOf(c)>=0){
- continue;
- }
- else if ('='==c) {
- state = STATE_EXPECT_ATTRIBUTEVALUE;
- attributeName = buf.toString();
- buf.setLength(0);
- }
- else {
- attributeName = buf.toString();
- buf.setLength(0);
- printWarning("In Tag '"+tag+"':\nAttribute name without a value, inserting value =\""+attributeName+"\"");
- newAttributes += " "+attributeName+"=\""+attributeName+"\"";
- buf.append((char)c);
- state = STATE_EXPECT_ATTRIBUTENAME;
- }
- break;
-
- case STATE_EXPECT_ATTRIBUTEVALUE:
- if (" \t\r\n".indexOf(c)>=0){
- continue;
- }
- else if ('\"'==c) {
- state = STATE_DOUBLEQUOTE_ATTRIBUTEVALUE;
- }
- else if ('\''==c) {
- state = STATE_SINGLEQUOTE_ATTRIBUTEVALUE;
- }
- else {
- state = STATE_UNQUOTED_ATTRIBUTEVALUE;
- buf.append((char)c);
- }
- break;
-
- case STATE_UNQUOTED_ATTRIBUTEVALUE:
- if (-1==c || " \t\r\n".indexOf(c)>=0){
- state = STATE_INITIAL;
- newAttributes += " "+attributeName + "=\"" + buf.toString() + "\"";
- buf.setLength(0);
- }
- else {
- buf.append((char)c);
- }
- break;
-
- case STATE_SINGLEQUOTE_ATTRIBUTEVALUE:
- if ('\''==c) {
- state = STATE_INITIAL;
- newAttributes += " "+attributeName + "=\"" + buf.toString() + "\"";
- buf.setLength(0);
- }
- else {
- buf.append((char)c);
- }
- break;
-
- case STATE_DOUBLEQUOTE_ATTRIBUTEVALUE:
- if ('\"'==c) {
- state = STATE_INITIAL;
- newAttributes += " "+attributeName + "=\"" + buf.toString() + "\"";
- buf.setLength(0);
- }
- else {
- buf.append((char)c);
- }
- break;
- }
- }
-
-
- if (!isAtomTag) {
-
- // check whether this open tag is equal to the topmost
- // entry on the stack; if yes, emit a close tag first
-
- // corrects stuff like '
...
...');
- if (!tagStack.isEmpty() && tagStack.peek().equals(tagName)) {
- printWarning("Inserting "+tagName+">");
- output.append(""+tagName+">");
- tagStack.pop();
- }
- else {
- processKnownChildTags(tagName, tagStack, output);
- }
-
- // otherwise, we assume there are no close tags required
- // before this open tag.
- tagStack.push(tagName);
-
- output.append("<"+tagName+newAttributes+">");
- }
- else {
- output.append("<"+tagName+newAttributes+"/>");
- }
- }
- }
-
- private boolean processKnownChildTags(String tagName, Stack tagStack, StringBuffer output) {
-
- TagInfo tagInfo = (TagInfo)tagInfoMap.get(tagName);
- if (null != tagInfo) {
-
- String parentTag = null;
- for (Enumeration en = tagStack.elements(); en.hasMoreElements(); ) {
- String tag = (String)en.nextElement();
- if (tagInfo.isLegalParentTag(tag)) {
- parentTag = tag;
- break;
- }
- }
- if (parentTag != null) {
- while (((String)tagStack.peek()) != parentTag) {
- String poppedTagName = (String)tagStack.pop();
- output.append(""+poppedTagName+">");
- printWarning("Inserting "+poppedTagName+">");
- }
- return true;
- }
- }
- return false;
- }
-
- private void flush() {
-
- // close all pending tags
- while (!tagStack.isEmpty()) {
- String tagName = (String)tagStack.pop();
- printWarning("Inserting "+tagName+">");
- output.append(""+tagName+">");
- }
- }
-
- /**
- * Takes HTML fragment and returns a well-formed XHTML
- * equivalent.
- *
- * In the returned String, all tags are properly closed and
- * nested.
- *
- * Currently, the returned String is not guaranteed to be
- * well-formed. In particular there are no checks on the tag
- * names, attribute names and entity names.
- */
- public String getWellformedHTML(String text) {
-
- final int STATE_INITIAL = 1;
- final int STATE_TAG_START = 2;
- final int STATE_TAG = 3;
- final int STATE_TAG_DOUBLEQUOTE = 4;
- final int STATE_TAG_SINGLEQUOTE = 5;
- final int STATE_AMP = 6;
-
- int state = STATE_INITIAL;
- output.setLength(0);
-
-
- StringBuffer buf = new StringBuffer();
- char[] textAsChars = text.toCharArray();
-
- outer_loop:
- for (int i=0, ilim=textAsChars.length+1; i0) {
- haveText(buf.toString());
- buf.setLength(0);
- }
- }
- else if ('>'==c) {
- // assume this is a greater-than sign
- buf.append(">");
- }
- else if ('&'==c) {
- state = STATE_AMP;
- }
- else if (-1==c) {
- if (buf.length()>0) {
- haveText(buf.toString());
- buf.setLength(0);
- }
- continue;
- }
- else {
- buf.append((char)c);
- }
- break;
-
- case STATE_AMP:
- if ('<'==c) {
- buf.append("&");
- state = STATE_TAG_START;
- if (buf.length()>0) {
- haveText(buf.toString());
- buf.setLength(0);
- }
- }
- else if ('>'==c) {
- // assume this is a greater-than sign
- buf.append("&");
- buf.append(">");
- state = STATE_INITIAL;
- }
- else if ('&'==c) {
- buf.append("&");
- buf.append("&");
- state = STATE_INITIAL;
- }
- else if (-1==c) {
- buf.append("&");
- haveText(buf.toString());
- buf.setLength(0);
- state = STATE_INITIAL;
- continue;
- }
- else {
- // peek forward and see whether this is a valid entity.
- if ('#'==c) {
- buf.append("&");
- buf.append((char)c);
- state = STATE_INITIAL;
- continue outer_loop;
- }
- else if (Character.isLetter((char)c)) {
- for (int i2=i+1; i2=0) {
- //continue;
-
- // new: assume this is a less-sign
- haveText("<"+c);
- state = STATE_INITIAL;
- }
- else if ('/'==c) {
- buf.append((char)c);
- state = STATE_TAG;
- }
- else if ('<'==c) {
- // assume this is a less-sign
- haveText("<<");
- state = STATE_INITIAL;
- }
- else if ('>'==c) {
- // assume this is a less-sign
- haveText("<>");
- state = STATE_INITIAL;
- }
- //else if ('-'==c || '+'==c || '='==c || '\''==c || "0123456789".indexOf(c)>=0) {
- else if (!Character.isLetter((char)c)) {
- // assume this is a less-sign
- haveText("<"+(char)c);
- state = STATE_INITIAL;
- }
- else {
- buf.append((char)c);
- state = STATE_TAG;
- }
- break;
-
- case STATE_TAG:
- if ('\"'==c) {
- buf.append((char)c);
- state = STATE_TAG_DOUBLEQUOTE;
- }
- else if ('\''==c) {
- buf.append((char)c);
- state = STATE_TAG_SINGLEQUOTE;
- }
- else if ('>'==c) {
- state = STATE_INITIAL;
- haveStartOrEndTag(buf.toString());
- buf.setLength(0);
- }
- else if ('<'==c) {
- // notify user, missing greater-than sign
- haveStartOrEndTag(buf.toString());
- buf.setLength(0);
- }
- else if (-1==c) {
- printWarning("Unclosed tag at end-of-comment: <"+buf);
- haveStartOrEndTag(buf.toString());
- buf.setLength(0);
- }
- else {
- buf.append((char)c);
- }
- break;
-
- case STATE_TAG_DOUBLEQUOTE:
- if ('\"'==c) {
- buf.append((char)c);
- state = STATE_TAG;
- }
- else if (-1==c) {
- printWarning("Unclosed attribute value at end-of-comment.");
- haveStartOrEndTag(buf.toString()+"\"");
- }
- else {
- buf.append((char)c);
- }
- break;
-
- case STATE_TAG_SINGLEQUOTE:
- if ('\''==c) {
- buf.append((char)c);
- state = STATE_TAG;
- }
- else if (-1==c) {
- printWarning("Unclosed attribute value at end-of-comment.");
- haveStartOrEndTag(buf.toString()+"'");
- }
- else {
- buf.append((char)c);
- }
- break;
- }
- }
-
- return output.toString();
- }
-
- private String getContext() {
- if (null != contextClass) {
- StringBuffer rc = new StringBuffer();
- rc.append(contextClass.qualifiedTypeName());
- if (null != contextMember) {
- rc.append("."+contextMember.toString());
- }
- return rc.toString();
- }
- else {
- return null;
- }
- }
-
- private void printWarning(String msg) {
- if (null != warningReporter && !noWarn) {
- String context = getContext();
- if (null != context) {
- warningReporter.printWarning("In "+getContext()+": "+msg);
- }
- else {
- warningReporter.printWarning("In overview page: "+msg);
- }
- }
- }
-
- public String terminateText() {
- output.setLength(0);
- flush();
- return output.toString();
- }
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/TargetContext.java b/libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/TargetContext.java
deleted file mode 100644
index 6e05a5e..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/TargetContext.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/* gnu.classpath.tools.doclets.xmldoclet.TargetContext
- Copyright (C) 2001 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a 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 gnu.classpath.tools.doclets.xmldoclet;
-
-import java.io.File;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.IOException;
-
-import java.net.URL;
-
-import java.util.List;
-import java.util.Iterator;
-import java.util.Map;
-import java.util.HashMap;
-
-import gnu.classpath.tools.doclets.xmldoclet.doctranslet.DocTranslet;
-
-/**
- * Stores any XSL transformation and postprocessing-specific
- * information given by the user on the doclet command line.
- *
- * @author Julian Scheid
- */
-public class TargetContext {
-
- /**
- * The DocTranslet to use for processing doclet output.
- */
- private DocTranslet docTranslet;
-
- /**
- * Directory to write final output to.
- */
- private File targetDirectory;
-
- /**
- * Directory where XSLT output will be written to. If an XSLT
- * sheet was specified, but no postprocessing driver was given,
- * this is the target directory specified by the user. Otherwise,
- * this is a temporary directory.
- */
- private File xsltTargetDirectory;
-
-
- public TargetContext(DocTranslet docTranslet, File targetDirectory) {
- this.docTranslet = docTranslet;
- this.targetDirectory = targetDirectory;
- }
-
- public File getTargetDirectory() {
- return targetDirectory;
- }
-
- public void setTargetDirectory(File targetDirectory) {
- this.targetDirectory = targetDirectory;
- }
-
- public DocTranslet getDocTranslet() {
- return docTranslet;
- }
-
- public void setDocTranslet(DocTranslet docTranslet) {
- this.docTranslet = docTranslet;
- }
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTranslet.java b/libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTranslet.java
deleted file mode 100644
index c5a9f82..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTranslet.java
+++ /dev/null
@@ -1,460 +0,0 @@
-/* gnu.classpath.tools.doclets.xmldoclet.doctranslet.DocTranslet
- Copyright (C) 2001 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a 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 gnu.classpath.tools.doclets.xmldoclet.doctranslet;
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.InputStream;
-import java.io.IOException;
-import java.io.OutputStream;
-import java.io.PrintStream;
-
-import java.net.MalformedURLException;
-import java.net.URL;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import java.util.HashMap;
-import java.util.Map;
-
-import java.util.jar.JarFile;
-import java.util.jar.Manifest;
-import java.util.jar.Attributes;
-
-import javax.xml.transform.ErrorListener;
-import javax.xml.transform.Source;
-import javax.xml.transform.Transformer;
-import javax.xml.transform.TransformerException;
-import javax.xml.transform.TransformerFactory;
-import javax.xml.transform.TransformerFactoryConfigurationError;
-import javax.xml.transform.URIResolver;
-
-import javax.xml.transform.dom.DOMResult;
-
-import javax.xml.transform.stream.StreamResult;
-import javax.xml.transform.stream.StreamSource;
-
-import javax.xml.parsers.DocumentBuilderFactory;
-import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.ParserConfigurationException;
-
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-
-import org.xml.sax.SAXException;
-
-import gnu.classpath.tools.IOToolkit;
-import gnu.classpath.tools.doclets.xmldoclet.Driver;
-
-import com.sun.javadoc.DocErrorReporter;
-
-public class DocTranslet implements ErrorListener {
-
- private static class DocErrorReporterOutputStream
- extends OutputStream
- {
- private ByteArrayOutputStream out = new ByteArrayOutputStream();
- private DocErrorReporter reporter;
-
- public DocErrorReporterOutputStream(DocErrorReporter reporter) {
- this.reporter = reporter;
- }
-
- public void write(int ch) {
- out.write(ch);
- if (ch == 10) {
- reporter.printNotice(out.toString());
- out.reset();
- }
- }
- }
-
- private String mainResourceFilename;
- private ClassLoader classLoader;
- private Map transformerMap = new java.util.HashMap(); //WeakHashMap();
- private DocTransletOptions options;
-
- protected DocTranslet(String mainResourceFilename,
- ClassLoader classLoader)
- throws DocTransletConfigurationException {
-
- if (mainResourceFilename.length() > 0 && mainResourceFilename.charAt(0) == '/') {
- mainResourceFilename = mainResourceFilename.substring(1);
- }
- this.mainResourceFilename = mainResourceFilename;
- this.classLoader = classLoader;
- }
-
- private static boolean equalsFile(File file1, File file2) {
- return file1.getAbsolutePath().equals(file2.getAbsolutePath());
- }
-
- private static File getParentFile(File file) {
- String filename = file.getAbsolutePath();
- if (filename.endsWith(File.separator)) {
- filename = filename.substring(0, filename.length() - 1);
- }
- int lastSlash = filename.lastIndexOf(File.separatorChar);
- if (lastSlash > 0) {
- filename = filename.substring(0, lastSlash);
- }
- else {
- filename = File.separator;
- }
-
- return new File(filename);
- }
-
- private static boolean cacheXSLTSheets = true;
-
- public void apply(File xmlSourceDirectory, File targetDirectory,
- DocErrorReporter reporter)
- throws DocTransletException {
-
- PrintStream err = System.err;
-
- try{
- URL mainResourceURL = classLoader == null ?
- ClassLoader.getSystemResource(mainResourceFilename):
- classLoader.getResource(mainResourceFilename);
-
- if (null == mainResourceURL) {
- throw new DocTransletException("Cannot find resource '" + mainResourceFilename + "'");
- }
-
-
- Map parameters = new HashMap();
- parameters.put("gjdoc.xmldoclet.version", Driver.XMLDOCLET_VERSION);
-
- parameters.put("gjdoc.option.nonavbar", xsltBoolean(options.nonavbar));
- parameters.put("gjdoc.option.noindex", xsltBoolean(options.noindex));
- parameters.put("gjdoc.option.notree", xsltBoolean(options.notree));
- parameters.put("gjdoc.option.nocomment", xsltBoolean(options.nocomment));
- parameters.put("gjdoc.option.nohelp", xsltBoolean(options.nohelp));
- parameters.put("gjdoc.option.splitindex", xsltBoolean(options.splitindex));
- parameters.put("gjdoc.option.linksource", xsltBoolean(options.linksource));
- parameters.put("gjdoc.option.nodeprecatedlist", xsltBoolean(options.nodeprecatedlist));
- parameters.put("gjdoc.option.uses", xsltBoolean(options.uses));
- parameters.put("gjdoc.option.windowtitle", options.windowtitle);
- parameters.put("gjdoc.option.helpfile", options.helpfile);
- parameters.put("gjdoc.option.stylesheetfile", options.stylesheetfile);
- parameters.put("gjdoc.option.header", options.header);
- parameters.put("gjdoc.option.footer", options.footer);
- parameters.put("gjdoc.option.bottom", options.bottom);
- parameters.put("gjdoc.option.doctitle", options.doctitle);
-
- List outputFileList = getOutputFileList(mainResourceURL,
- xmlSourceDirectory,
- parameters);
-
- reporter.printNotice("Running DocTranslet...");
-
- TransformerFactory transformerFactory
- = TransformerFactory.newInstance();
-
- transformerFactory.setErrorListener(this);
-
- boolean isLibxmlJ
- = transformerFactory.getClass().getName().equals("gnu.xml.libxmlj.transform.TransformerFactoryImpl");
-
- for (Iterator it = outputFileList.iterator(); it.hasNext(); ) {
-
- if (isLibxmlJ) {
- System.gc();
- Runtime.getRuntime().runFinalization();
- }
-
- OutputFileInfo fileInfo = (OutputFileInfo)it.next();
-
- File targetFile = new File(targetDirectory, fileInfo.getName());
- File packageTargetDir = getParentFile(targetFile);
-
- if (!packageTargetDir.exists() && !packageTargetDir.mkdirs()) {
- throw new DocTransletException("Target directory " + packageTargetDir + " does not exist and cannot be created.");
- }
-
- if (options.linksource) {
- File sourceTargetDirectory = new File(targetDirectory, "src-html");
- File sourceTargetFile = new File(sourceTargetDirectory, fileInfo.getName());
- File sourcePackageTargetDir = getParentFile(sourceTargetFile);
-
- if (!sourcePackageTargetDir.exists() && !sourcePackageTargetDir.mkdirs()) {
- throw new DocTransletException("Target directory " + packageTargetDir + " does not exist and cannot be created.");
- }
- }
-
- if (options.uses) {
- File usesTargetDirectory = new File(targetDirectory, "class-use");
- File usesTargetFile = new File(usesTargetDirectory, fileInfo.getName());
- File usesPackageTargetDir = getParentFile(usesTargetFile);
-
- if (!usesPackageTargetDir.exists() && !usesPackageTargetDir.mkdirs()) {
- throw new DocTransletException("Target directory " + packageTargetDir + " does not exist and cannot be created.");
- }
- }
-
- if (null != fileInfo.getSource()) {
-
- reporter.printNotice("Copying " + fileInfo.getComment() + "...");
- InputStream in = new URL(mainResourceURL, fileInfo.getSource()).openStream();
- FileOutputStream out = new FileOutputStream(targetFile.getAbsolutePath());
- IOToolkit.copyStream(in, out);
- in.close();
- out.close();
- }
- else {
-
- reporter.printNotice("Generating " + fileInfo.getComment() + "...");
-
- String pathToRoot = "";
- for (File file = getParentFile(targetFile); !equalsFile(file, targetDirectory); file = getParentFile(file)) {
- pathToRoot += "../";
- }
-
- StreamResult out = new StreamResult(targetFile.getAbsolutePath());
-
- StreamSource in = new StreamSource(new File(xmlSourceDirectory, "index.xml").getAbsolutePath());
- URL resource = new URL(mainResourceURL, fileInfo.getSheet());
-
-
- StreamSource xsltSource = new StreamSource(resource.toExternalForm());
-
- if (null != fileInfo.getInfo()) {
- parameters.put("gjdoc.outputfile.info", fileInfo.getInfo());
- }
- parameters.put("gjdoc.pathtoroot", pathToRoot);
-
- Transformer transformer;
- transformer = (Transformer)transformerMap.get(xsltSource.getSystemId());
- if (null == transformer) {
- transformer = transformerFactory.newTransformer(xsltSource);
- if (cacheXSLTSheets) {
- transformerMap.put(xsltSource.getSystemId(), transformer);
- }
- }
-
- transformer.clearParameters();
- for (Iterator pit = parameters.keySet().iterator(); pit.hasNext(); ) {
- String key = (String)pit.next();
- String value = (String)parameters.get(key);
- transformer.setParameter(key, value);
- }
-
- transformer.setErrorListener(this);
- DocErrorReporterOutputStream errorReporterOut
- = new DocErrorReporterOutputStream(reporter);
- System.setErr(new PrintStream(errorReporterOut));
-
- transformer.transform(in, out);
- errorReporterOut.flush();
- }
- }
- }
- catch (MalformedURLException e) {
- throw new DocTransletException(e);
- }
- catch (TransformerFactoryConfigurationError e) {
- throw new DocTransletException(e);
- }
- catch (TransformerException e) {
- throw new DocTransletException(e.getMessageAndLocation(), e);
- }
- catch (IOException e) {
- throw new DocTransletException(e);
- }
- finally {
- System.setErr(err);
- }
- }
-
- private List getOutputFileList(URL resource, File xmlSourceDirectory, Map parameters)
- throws DocTransletException {
-
- try {
- List result;
-
- OutputStream out = new ByteArrayOutputStream();
-
- DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
- DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder();
- Document document = documentBuilder.newDocument();
- DOMResult domResult = new DOMResult(document);
- {
- StreamSource source = new StreamSource(resource.toExternalForm());
-
- TransformerFactory transformerFactory = TransformerFactory.newInstance();
- Transformer transformer = (Transformer)transformerFactory.newTransformer(source);
-
- transformer.clearParameters();
- for (Iterator pit = parameters.keySet().iterator(); pit.hasNext(); ) {
- String key = (String)pit.next();
- String value = (String)parameters.get(key);
- transformer.setParameter(key, value);
- }
-
- transformer.transform(new StreamSource(new File(xmlSourceDirectory,
- "index.xml").getAbsolutePath()),
- domResult);
- }
-
- {
- NodeList nodeList = document.getElementsByTagName("outputfile");
- result = new ArrayList(nodeList.getLength());
-
- for (int i=0; i 0) {
- if (null != elem.getElementsByTagName("info").item(0).getFirstChild()) {
- info = getTextContent(elem.getElementsByTagName("info").item(0));
- }
- else {
- info = "";
- }
- }
- result.add(new OutputFileInfo(name, source, sheet, comment, info));
- }
- }
- return result;
- }
- catch (TransformerFactoryConfigurationError e) {
- throw new DocTransletException(e);
- }
- catch (TransformerException e) {
- throw new DocTransletException(e.getMessageAndLocation(), e);
- }
- catch (ParserConfigurationException e) {
- throw new DocTransletException(e);
- }
- }
-
- private String getTextContent(Node elem)
- {
- StringBuffer result = new StringBuffer();
- NodeList children = elem.getChildNodes();
- for (int i=0; i= 0) {
- offset += nread;
- }
- in.close();
- return result;
- }
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/OutputFileInfo.java b/libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/OutputFileInfo.java
deleted file mode 100644
index b0ede61..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/OutputFileInfo.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/* gnu.classpath.tools.doclets.xmldoclet.doctranslet.OutputFileInfo
- 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., 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 gnu.classpath.tools.doclets.xmldoclet.doctranslet;
-
-/**
- * Holds information about a file to be generated by the DocTranslet.
- */
-public class OutputFileInfo {
-
- private String name;
- private String source;
- private String sheet;
- private String comment;
- private String info;
-
- public OutputFileInfo(String name, String source, String sheet, String comment, String info) {
- this.name = name;
- this.source = source;
- this.sheet = sheet;
- this.comment = comment;
- this.info = info;
- }
-
- public String getName() { return name; }
- public String getSource() { return source; }
- public String getSheet() { return sheet; }
- public String getComment() { return comment; }
- public String getInfo() { return info; }
-
- public String toString() { return "OutputFileInfo{name="+name+",source="+source+",sheet="+sheet+",comment="+comment+",info="+info+"}"; }
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/getopt/FileArgumentCallback.java b/libjava/classpath/tools/gnu/classpath/tools/getopt/FileArgumentCallback.java
deleted file mode 100644
index 53a4f3d..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/getopt/FileArgumentCallback.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/* FileArgumentCallback.java - handle non-option command line arguments
- Copyright (C) 2006 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-02110-1301 USA.
-
-Linking this library statically or dynamically with other modules is
-making a combined work based on this library. Thus, the terms and
-conditions of the GNU General Public License cover the whole
-combination.
-
-As a special exception, the copyright holders of this library give you
-permission to link this library with independent modules to produce an
-executable, regardless of the license terms of these independent
-modules, and to copy and distribute the resulting executable under
-terms of your choice, provided that you also meet, for each linked
-independent module, the terms and conditions of the license of that
-module. An independent module is a module which is not derived from
-or based on this library. If you modify this library, you may extend
-this exception to your version of the library, but you are not
-obligated to do so. If you do not wish to do so, delete this
-exception statement from your version. */
-
-
-package gnu.classpath.tools.getopt;
-
-/**
- * This is a callback class which is used when a "file name" is found by the
- * command-line parser. A file name is any command-line argument which does not
- * start with a dash and which is not the argument of some preceding option.
- */
-public abstract class FileArgumentCallback
-{
- /**
- * Create a new instance.
- */
- protected FileArgumentCallback()
- {
- }
-
- /**
- * This is called when a file argument is seen.
- *
- * @param fileArgument the file name
- */
- public abstract void notifyFile(String fileArgument)
- throws OptionException;
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/getopt/Messages.java b/libjava/classpath/tools/gnu/classpath/tools/getopt/Messages.java
deleted file mode 100644
index 9a9c4ec..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/getopt/Messages.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/* Messages.java -- i18n support for getopt
- Copyright (C) 2006, 2010 Free Software Foundation, Inc.
-
- This file is part of GNU Classpath.
-
- GNU Classpath is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2, or (at your option)
- any later version.
-
- GNU Classpath is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with GNU Classpath; see the file COPYING. If not, write to the
- Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
- 02110-1301 USA.
-
- Linking this library statically or dynamically with other modules is
- making a combined work based on this library. Thus, the terms and
- conditions of the GNU General Public License cover the whole
- combination.
-
- As a special exception, the copyright holders of this library give you
- permission to link this library with independent modules to produce an
- executable, regardless of the license terms of these independent
- modules, and to copy and distribute the resulting executable under
- terms of your choice, provided that you also meet, for each linked
- independent module, the terms and conditions of the license of that
- module. An independent module is a module which is not derived from
- or based on this library. If you modify this library, you may extend
- this exception to your version of the library, but you are not
- obligated to do so. If you do not wish to do so, delete this
- exception statement from your version. */
-
-
-package gnu.classpath.tools.getopt;
-
-import java.util.MissingResourceException;
-import java.util.ResourceBundle;
-
-class Messages
-{
- private static final String BUNDLE_NAME
- = "gnu.classpath.tools.getopt.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/getopt/Option.java b/libjava/classpath/tools/gnu/classpath/tools/getopt/Option.java
deleted file mode 100644
index e7b5d82..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/getopt/Option.java
+++ /dev/null
@@ -1,266 +0,0 @@
-/* Option.java - represent a command-line option
- Copyright (C) 2006 Free Software Foundation, Inc.
-
- This file is part of GNU Classpath.
-
- GNU Classpath is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2, or (at your option)
- any later version.
-
- GNU Classpath is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with GNU Classpath; see the file COPYING. If not, write to the
- Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
- 02110-1301 USA.
-
- Linking this library statically or dynamically with other modules is
- making a combined work based on this library. Thus, the terms and
- conditions of the GNU General Public License cover the whole
- combination.
-
- As a special exception, the copyright holders of this library give you
- permission to link this library with independent modules to produce an
- executable, regardless of the license terms of these independent
- modules, and to copy and distribute the resulting executable under
- terms of your choice, provided that you also meet, for each linked
- independent module, the terms and conditions of the license of that
- module. An independent module is a module which is not derived from
- or based on this library. If you modify this library, you may extend
- this exception to your version of the library, but you are not
- obligated to do so. If you do not wish to do so, delete this
- exception statement from your version. */
-
-
-package gnu.classpath.tools.getopt;
-
-/**
- * This is the base class representing an option. An option can have a short
- * form. This is a single character, like '-x'. An option can have a long form,
- * 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. 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
-{
- private char shortName;
-
- private String longName;
-
- private String description;
-
- private String argumentName;
-
- private boolean joined;
-
- /**
- * Create a new option with the given short name and description.
- *
- * @param shortName the short name
- * @param description the description
- */
- protected Option(char shortName, String description)
- {
- if (shortName == 0)
- throw new IllegalArgumentException("short name must not be \\0");
- this.shortName = shortName;
- this.description = description;
- }
-
- /**
- * 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
- */
- 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.
- *
- * @param longName the long name
- * @param description the description
- */
- protected Option(String longName, String description)
- {
- this.longName = longName;
- this.description = description;
- }
-
- /**
- * Create a new option with the given long name and description. The long name
- * should be specified without any leading dashes.
- *
- * @param longName the long name
- * @param description the description
- * @param argumentName the descriptive name of the argument, if this option
- * takes an argument; otherwise null
- */
- protected Option(String longName, String description, String argumentName)
- {
- this.longName = longName;
- this.description = description;
- this.argumentName = argumentName;
- }
-
- /**
- * 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
- */
- 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;
- }
-
- /**
- * 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
- */
- 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.
- */
- public char getShortName()
- {
- return shortName;
- }
-
- /**
- * Return the long name of the option, or null if none.
- */
- public String getLongName()
- {
- return longName;
- }
-
- /**
- * Return true if the argument takes an option.
- */
- public boolean getTakesArgument()
- {
- return argumentName != null;
- }
-
- /**
- * Return the name of the argument. If the option does not take an argument,
- * returns null.
- */
- public String getArgumentName()
- {
- return argumentName;
- }
-
- /**
- * Return the description of the option.
- */
- public String getDescription()
- {
- 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
- * argument, the argument will be passed in. Otherwise the argument will be
- * null.
- *
- * @param argument the argument
- * @throws OptionException if the option or its argument is somehow invalid
- */
- public abstract void parsed(String argument) throws OptionException;
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/getopt/OptionException.java b/libjava/classpath/tools/gnu/classpath/tools/getopt/OptionException.java
deleted file mode 100644
index 2d7f77a..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/getopt/OptionException.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/* OptionException.java - when command-line processing fails
- Copyright (C) 2006 Free Software Foundation, Inc.
-
- This file is part of GNU Classpath.
-
- GNU Classpath is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2, or (at your option)
- any later version.
-
- GNU Classpath is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with GNU Classpath; see the file COPYING. If not, write to the
- Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
- 02110-1301 USA.
-
- Linking this library statically or dynamically with other modules is
- making a combined work based on this library. Thus, the terms and
- conditions of the GNU General Public License cover the whole
- combination.
-
- As a special exception, the copyright holders of this library give you
- permission to link this library with independent modules to produce an
- executable, regardless of the license terms of these independent
- modules, and to copy and distribute the resulting executable under
- terms of your choice, provided that you also meet, for each linked
- independent module, the terms and conditions of the license of that
- module. An independent module is a module which is not derived from
- or based on this library. If you modify this library, you may extend
- this exception to your version of the library, but you are not
- obligated to do so. If you do not wish to do so, delete this
- exception statement from your version. */
-
-
-package gnu.classpath.tools.getopt;
-
-/**
- * An OptionException is thrown internally when an error is seen when parsing a
- * command line.
- */
-public class OptionException
- extends Exception
-{
- public OptionException(String message)
- {
- super(message);
- }
-
- public OptionException(String message, Throwable cause)
- {
- super(message, cause);
- }
-
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/getopt/OptionGroup.java b/libjava/classpath/tools/gnu/classpath/tools/getopt/OptionGroup.java
deleted file mode 100644
index 83fcca0f..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/getopt/OptionGroup.java
+++ /dev/null
@@ -1,268 +0,0 @@
-/* OptionGroup.java - a group of related command-line 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.getopt;
-
-import java.io.PrintStream;
-import java.text.BreakIterator;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.Locale;
-
-/**
- * An option group holds a collection of Options. It also has a name. Option
- * groups are primarily useful for grouping help output.
- */
-public class OptionGroup
-{
- /** An 80-character string of whitespaces to use as a source for padding. */
- private static final String FILLER = " "
- + " ";
- private String name;
-
- ArrayList options = new ArrayList();
-
- /**
- * Create a new nameless option group. This can only be used by Parser.
- */
- OptionGroup()
- {
- }
-
- /**
- * Create a new option group with the indicated name.
- *
- * @param name the name
- */
- public OptionGroup(String name)
- {
- this.name = name;
- }
-
- /**
- * Print a designated text to a {@link PrintStream}, eventually wrapping the
- * lines of text so as to ensure that the width of each line does not overflow
- * {@link Parser#MAX_LINE_LENGTH} columns. The line-wrapping is done with a
- * {@link BreakIterator} using the default {@link Locale}.
- *
- * The text to print may contain \n characters. This method will
- * force a line-break for each such character.
- *
- * @param out the {@link PrintStream} destination of the formatted text.
- * @param text the text to print.
- * @param leftMargin a positive value indicating the column position of the
- * start of the first line. Continuation lines, if they exist, are
- * printed starting at leftMargin + 2 as per GNU
- * convention.
- * @see Parser#MAX_LINE_LENGTH
- */
- protected static void formatText(PrintStream out, String text, int leftMargin)
- {
- formatText(out, text, leftMargin, Locale.getDefault());
- }
-
- /**
- * Similar to the method with the same name and three arguments, except that
- * the caller MUST specify a non-null {@link Locale} instance.
- *
- * Print a designated text to a {@link PrintStream}, eventually wrapping the
- * lines of text so as to ensure that the width of each line does not overflow
- * {@link Parser#MAX_LINE_LENGTH} columns. The line-wrapping is done with a
- * {@link BreakIterator} using the designated {@link Locale}.
- *
- * The text to print may contain \n characters. This method will
- * force a line-break for each such character.
- *
- * @param out the {@link PrintStream} destination of the formatted text.
- * @param text the text to print.
- * @param leftMargin a positive value indicating the column position of the
- * start of the first line. Continuation lines, if they exist, are
- * printed starting at leftMargin + 2 as per GNU
- * convention.
- * @param aLocale the {@link Locale} instance to use when constructing the
- * {@link BreakIterator}.
- * @see Parser#MAX_LINE_LENGTH
- */
- protected static void formatText(PrintStream out, String text, int leftMargin,
- Locale aLocale)
- {
- BreakIterator bit = BreakIterator.getLineInstance(aLocale);
- String[] lines = text.split("\n");
- int length = leftMargin;
- String leftPadding = FILLER.substring(0, leftMargin + 2);
- for (int i = 0; i < lines.length; i++)
- {
- text = lines[i];
- bit.setText(text);
- int start = bit.first();
- int finish;
- while ((finish = bit.next()) != BreakIterator.DONE)
- {
- String word = text.substring(start, finish);
- length += word.length();
- if (length >= Parser.MAX_LINE_LENGTH)
- {
- out.println();
- out.print(leftPadding);
- length = word.length() + leftMargin + 2;
- }
- out.print(word);
- start = finish;
- }
- out.println();
- if (i != lines.length - 1)
- {
- length = leftMargin + 2;
- out.print(leftPadding);
- }
- }
- }
-
- /**
- * Add an option to this option group.
- *
- * @param opt the option to add
- */
- public void add(Option opt)
- {
- options.add(opt);
- }
-
- /**
- * Print the help output for this option group.
- *
- * @param out the stream to which to print
- */
- public void printHelp(PrintStream out, boolean longOnly)
- {
- // Compute maximum lengths.
- int maxArgLen = 0;
- boolean shortOptionSeen = false;
- Iterator it;
-
- // The first pass only looks to see if we have a short option.
- it = options.iterator();
- while (it.hasNext())
- {
- Option option = (Option) it.next();
- if (option.getShortName() != '\0')
- {
- shortOptionSeen = true;
- break;
- }
- }
-
- it = options.iterator();
- while (it.hasNext())
- {
- Option option = (Option) it.next();
- String argName = option.getArgumentName();
- // First compute the width required for the short
- // option. "2" is the initial indentation. In the
- // GNU style we don't print an argument name for
- // a short option if there is also a long name for
- // the option.
- int thisArgLen = 2;
- if (shortOptionSeen)
- thisArgLen += 4;
- if (option.getLongName() != null)
- {
- // Handle either '-' or '--'.
- thisArgLen += 1 + option.getLongName().length();
- if (! longOnly)
- ++thisArgLen;
- }
- // Add in the width of the argument name.
- if (argName != null)
- thisArgLen += 1 + argName.length();
- maxArgLen = Math.max(maxArgLen, thisArgLen);
- }
-
- // Print the help.
- if (name != null)
- out.println(name + ":");
- it = options.iterator();
- while (it.hasNext())
- {
- Option option = (Option) it.next();
- String argName = option.getArgumentName();
- int column = 0;
- if (option.getShortName() != '\0')
- {
- out.print(" -");
- out.print(option.getShortName());
- column += 4;
- if (option.getLongName() == null)
- {
- if (argName != null)
- {
- if (! option.isJoined())
- {
- out.print(' ');
- ++column;
- }
- out.print(argName);
- column += argName.length();
- }
- out.print(" ");
- }
- else
- out.print(", ");
- column += 2;
- }
- // Indent the long option past the short options, if one
- // was seen.
- for (; column < (shortOptionSeen ? 6 : 2); ++column)
- out.print(' ');
- if (option.getLongName() != null)
- {
- out.print(longOnly ? "-" : "--");
- out.print(option.getLongName());
- column += (longOnly ? 1 : 2) + option.getLongName().length();
- if (argName != null)
- {
- out.print(" " + argName);
- column += 1 + argName.length();
- }
- }
- // FIXME: should have a better heuristic for padding.
- out.print(FILLER.substring(0, maxArgLen + 4 - column));
- formatText(out, option.getDescription(), maxArgLen + 4);
- }
- }
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/getopt/Parser.java b/libjava/classpath/tools/gnu/classpath/tools/getopt/Parser.java
deleted file mode 100644
index f23250e..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/getopt/Parser.java
+++ /dev/null
@@ -1,495 +0,0 @@
-/* Parser.java - parse command line options
- Copyright (C) 2006, 2008 Free Software Foundation, Inc.
-
- This file is part of GNU Classpath.
-
- GNU Classpath is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2, or (at your option)
- any later version.
-
- GNU Classpath is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with GNU Classpath; see the file COPYING. If not, write to the
- Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
- 02110-1301 USA.
-
- Linking this library statically or dynamically with other modules is
- making a combined work based on this library. Thus, the terms and
- conditions of the GNU General Public License cover the whole
- combination.
-
- As a special exception, the copyright holders of this library give you
- permission to link this library with independent modules to produce an
- executable, regardless of the license terms of these independent
- modules, and to copy and distribute the resulting executable under
- terms of your choice, provided that you also meet, for each linked
- independent module, the terms and conditions of the license of that
- module. An independent module is a module which is not derived from
- or based on this library. If you modify this library, you may extend
- this exception to your version of the library, but you are not
- obligated to do so. If you do not wish to do so, delete this
- exception statement from your version. */
-
-
-package gnu.classpath.tools.getopt;
-
-import java.io.PrintStream;
-import java.text.BreakIterator;
-import java.text.MessageFormat;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.Locale;
-
-/**
- * An instance of this class is used to parse command-line options. It does "GNU
- * style" argument recognition and also automatically handles "--help" and
- * "--version" processing. It can also be put in "long option only" mode. In
- * this mode long options are recognized with a single dash (as well as a double
- * dash) and strings of options like "-abc" are never parsed as a collection of
- * short options.
- */
-public class Parser
-{
- /** The maximum right column position. */
- public static final int MAX_LINE_LENGTH = 80;
-
- private String programName;
-
- private String headerText;
-
- private String footerText;
-
- private boolean longOnly;
-
- // All of the options. This is null initially; users must call
- // requireOptions before access.
- private ArrayList options;
-
- private ArrayList optionGroups = new ArrayList();
-
- private OptionGroup defaultGroup = new OptionGroup();
-
- private OptionGroup finalGroup;
-
- // These are used while parsing.
- private int currentIndex;
-
- private String[] args;
-
- /**
- * Create a new parser. The program name is used when printing error messages.
- * The version string is printed verbatim in response to "--version".
- *
- * @param programName the name of the program
- * @param versionString the program's version information
- */
- public Parser(String programName, String versionString)
- {
- this(programName, versionString, false);
- }
-
- /**
- * Print a designated text to a {@link PrintStream}, eventually wrapping the
- * lines of text so as to ensure that the width of each line does not overflow
- * {@link #MAX_LINE_LENGTH} columns. The line-wrapping is done with a
- * {@link BreakIterator} using the default {@link Locale}.
- *
- * The text to print may contain \n characters. This method will
- * force a line-break for each such character.
- *
- * @param out the {@link PrintStream} destination of the formatted text.
- * @param text the text to print.
- * @see Parser#MAX_LINE_LENGTH
- */
- protected static void formatText(PrintStream out, String text)
- {
- formatText(out, text, Locale.getDefault());
- }
-
- /**
- * Similar to the method with the same name and two arguments, except that the
- * caller MUST specify a non-null {@link Locale} instance.
- *
- * Print a designated text to a {@link PrintStream}, eventually wrapping the
- * lines of text so as to ensure that the width of each line does not overflow
- * {@link #MAX_LINE_LENGTH} columns. The line-wrapping is done with a
- * {@link BreakIterator} using the designated {@link Locale}.
- *
- * The text to print may contain \n characters. This method will
- * force a line-break for each such character.
- *
- * @param out the {@link PrintStream} destination of the formatted text.
- * @param text the text to print.
- * @param aLocale the {@link Locale} instance to use when constructing the
- * {@link BreakIterator}.
- * @see Parser#MAX_LINE_LENGTH
- */
- protected static void formatText(PrintStream out, String text, Locale aLocale)
- {
- BreakIterator bit = BreakIterator.getLineInstance(aLocale);
- String[] lines = text.split("\n"); //$NON-NLS-1$
- for (int i = 0; i < lines.length; i++)
- {
- text = lines[i];
- bit.setText(text);
- int length = 0;
- int finish;
- int start = bit.first();
- while ((finish = bit.next()) != BreakIterator.DONE)
- {
- String word = text.substring(start, finish);
- length += word.length();
- if (length >= MAX_LINE_LENGTH)
- {
- out.println();
- length = word.length();
- }
- out.print(word);
- start = finish;
- }
- out.println();
- }
- }
-
- /**
- * Create a new parser. The program name is used when printing error messages.
- * The version string is printed verbatim in response to "--version".
- *
- * @param programName the name of the program
- * @param versionString the program's version information
- * @param longOnly true if the parser should work in long-option-only mode
- */
- public Parser(String programName, final String versionString, boolean longOnly)
- {
- this.programName = programName;
- this.longOnly = longOnly;
-
- // Put standard options in their own section near the end.
- 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
- {
- printHelp(System.out);
- System.exit(0);
- }
- });
- finalGroup.add(new Option("version", Messages.getString("Parser.PrintVersion")) //$NON-NLS-1$ //$NON-NLS-2$
- {
- public void parsed(String argument) throws OptionException
- {
- System.out.println(versionString);
- System.exit(0);
- }
- });
- add(finalGroup);
-
- add(defaultGroup);
- }
-
- /**
- * Set the header text that is printed by --help.
- *
- * @param headerText the header text
- */
- public synchronized void setHeader(String headerText)
- {
- this.headerText = headerText;
- }
-
- /**
- * Set the footer text that is printed by --help.
- *
- * @param footerText the footer text
- */
- public synchronized void setFooter(String footerText)
- {
- this.footerText = footerText;
- }
-
- /**
- * Add an option to this parser. The option is added to the default option
- * group; this affects where it is placed in the help output.
- *
- * @param opt the option
- */
- public synchronized void add(Option opt)
- {
- 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)
- {
- finalGroup.add(opt);
- }
-
- /**
- * Add an option group to this parser. All the options in this group will be
- * recognized by the parser.
- *
- * @param group the option group
- */
- public synchronized void add(OptionGroup group)
- {
- // This ensures that the final group always appears at the end
- // of the options.
- if (optionGroups.isEmpty())
- optionGroups.add(group);
- else
- optionGroups.add(optionGroups.size() - 1, group);
- }
-
- // Make sure the 'options' field is properly initialized.
- private void requireOptions()
- {
- if (options != null)
- return;
- options = new ArrayList();
- Iterator it = optionGroups.iterator();
- while (it.hasNext())
- {
- OptionGroup group = (OptionGroup) it.next();
- options.addAll(group.options);
- }
- }
-
- public void printHelp()
- {
- this.printHelp(System.out);
- }
-
- synchronized void printHelp(PrintStream out)
- {
- requireOptions();
-
- if (headerText != null)
- {
- formatText(out, headerText);
- out.println();
- }
-
- Iterator it = optionGroups.iterator();
- while (it.hasNext())
- {
- OptionGroup group = (OptionGroup) it.next();
- // An option group might be empty, in which case we don't
- // want to print it..
- if (! group.options.isEmpty())
- {
- group.printHelp(out, longOnly);
- out.println();
- }
- }
-
- if (footerText != null)
- formatText(out, footerText);
- }
-
- /**
- * This method can be overridden by subclassses to provide some option
- * validation. It is called by the parser after all options have been
- * parsed. If an option validation problem is encountered, this should
- * throw an {@link OptionException} whose message should be shown to
- * the user.
- *
- * It is better to do validation here than after {@link #parse(String[])}
- * returns, because the parser will print a message referring the
- * user to the --help option.
- *
- * The base implementation does nothing.
- *
- * @throws OptionException the error encountered
- */
- protected void validate() throws OptionException
- {
- // Base implementation does nothing.
- }
-
- private String getArgument(String request) throws OptionException
- {
- ++currentIndex;
- if (currentIndex >= args.length)
- {
- String message
- = MessageFormat.format(Messages.getString("Parser.ArgReqd"), //$NON-NLS-1$
- new Object[] { request });
- throw new OptionException(request);
- }
- return args[currentIndex];
- }
-
- private void handleLongOption(String real, int index) throws OptionException
- {
- String option = real.substring(index);
- String justName = option;
- int eq = option.indexOf('=');
- if (eq != -1)
- justName = option.substring(0, eq);
- boolean isPlainShort = justName.length() == 1;
- char shortName = justName.charAt(0);
- Option found = null;
- for (int i = options.size() - 1; i >= 0; --i)
- {
- Option opt = (Option) options.get(i);
- if (justName.equals(opt.getLongName()))
- {
- found = opt;
- break;
- }
- if ((isPlainShort || opt.isJoined())
- && opt.getShortName() == shortName)
- {
- if (! isPlainShort)
- {
- // The rest of the option string is the argument.
- eq = 0;
- }
- found = opt;
- break;
- }
- }
- if (found == null)
- {
- String msg = MessageFormat.format(Messages.getString("Parser.Unrecognized"), //$NON-NLS-1$
- new Object[] { real });
- throw new OptionException(msg);
- }
- String argument = null;
- if (found.getTakesArgument())
- {
- if (eq == -1)
- argument = getArgument(real);
- else
- argument = option.substring(eq + 1);
- }
- else if (eq != - 1)
- {
- String msg
- = MessageFormat.format(Messages.getString("Parser.NoArg"), //$NON-NLS-1$
- new Object[] { real.substring(0, eq + index) });
- throw new OptionException(msg);
- }
- found.parsed(argument);
- }
-
- private void handleShortOptions(String option) throws OptionException
- {
- for (int charIndex = 1; charIndex < option.length(); ++charIndex)
- {
- 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);
- }
- }
-
- /**
- * Parse a command line. Any files which are found will be passed to the file
- * argument callback. This method will exit on error or when --help or
- * --version is specified.
- *
- * @param inArgs the command-line arguments
- * @param files the file argument callback
- */
- public synchronized void parse(String[] inArgs, FileArgumentCallback files)
- {
- requireOptions();
- try
- {
- args = inArgs;
- for (currentIndex = 0; currentIndex < args.length; ++currentIndex)
- {
- if (args[currentIndex].length() == 0
- || args[currentIndex].charAt(0) != '-'
- || "-".equals(args[currentIndex])) //$NON-NLS-1$
- {
- files.notifyFile(args[currentIndex]);
- continue;
- }
- if ("--".equals(args[currentIndex])) //$NON-NLS-1$
- break;
- if (args[currentIndex].charAt(1) == '-')
- handleLongOption(args[currentIndex], 2);
- else if (longOnly)
- handleLongOption(args[currentIndex], 1);
- else
- handleShortOptions(args[currentIndex]);
- }
- // Add remaining arguments to leftovers.
- for (++currentIndex; currentIndex < args.length; ++currentIndex)
- files.notifyFile(args[currentIndex]);
- // See if something went wrong.
- validate();
- }
- catch (OptionException err)
- {
- System.err.println(programName + ": " + err.getMessage()); //$NON-NLS-1$
- String fmt;
- if (longOnly)
- fmt = Messages.getString("Parser.TryHelpShort"); //$NON-NLS-1$
- else
- fmt = Messages.getString("Parser.TryHelpLong"); //$NON-NLS-1$
- String msg = MessageFormat.format(fmt, new Object[] { programName });
- System.err.println(programName + ": " + msg); //$NON-NLS-1$
- System.exit(1);
- }
- }
-
- /**
- * Parse a command line. Any files which are found will be returned. This
- * method will exit on error or when --help or --version is specified.
- *
- * @param inArgs the command-line arguments
- */
- public String[] parse(String[] inArgs)
- {
- final ArrayList fileResult = new ArrayList();
- parse(inArgs, new FileArgumentCallback()
- {
- public void notifyFile(String fileArgument)
- {
- fileResult.add(fileArgument);
- }
- });
- return (String[]) fileResult.toArray(new String[0]);
- }
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/AbstractTagImpl.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/AbstractTagImpl.java
deleted file mode 100644
index adb5b65..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/AbstractTagImpl.java
+++ /dev/null
@@ -1,107 +0,0 @@
-/* gnu.classpath.tools.gjdoc.AbstractTagImpl
- Copyright (C) 2001 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a 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 gnu.classpath.tools.gjdoc;
-
-import com.sun.javadoc.*;
-import java.util.*;
-
-public abstract class AbstractTagImpl
- implements Tag, TagContainer {
-
- private static final Tag[] emptyTags = new Tag[0];
-
- protected String text;
- protected Map tagMap;
-
- protected AbstractTagImpl(String text) {
- this.text=text;
- }
-
- public void resolve() {
- Tag[] allTags=inlineTags();
- if (null != allTags) {
- for (int i=0; i=beginIndex && currentIndexbeginIndex)?endIndex-1:endIndex)];
- }
-
- // Increments the iterator's index by one and returns the character at the new index.
- public char next() {
- return (++currentIndex=beginIndex)?data[currentIndex]:DONE;
- }
-
- // Sets the position to the specified position in the text and returns that character.
- public char setIndex(int position) {
- this.currentIndex=position;
- return current();
- }
-
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ClassDocImpl.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ClassDocImpl.java
deleted file mode 100644
index b0e2127..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ClassDocImpl.java
+++ /dev/null
@@ -1,1260 +0,0 @@
-/* gnu.classpath.tools.gjdoc.ClassDocImpl
- Copyright (C) 2001, 2012 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 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 gnu.classpath.tools.gjdoc;
-
-import com.sun.javadoc.*;
-import java.util.*;
-import java.io.*;
-import gnu.classpath.tools.gjdoc.expr.EvaluatorEnvironment;
-import gnu.classpath.tools.gjdoc.expr.CircularExpressionException;
-import gnu.classpath.tools.gjdoc.expr.IllegalExpressionException;
-import gnu.classpath.tools.gjdoc.expr.UnknownIdentifierException;
-
-public class ClassDocImpl
- extends ProgramElementDocImpl
- implements ClassDoc, WritableType, EvaluatorEnvironment {
-
- private ClassDoc baseClassDoc;
- private ClassDoc[] importedClasses;
- private PackageDoc[] importedPackages;
- private boolean definesSerializableFields;
- private FieldDoc[] serialPersistentField;
- private MethodDoc[] serializationMethods;
- private String dimension = "";
-
- public ClassDocImpl(ClassDoc containingClass,
- PackageDoc containingPackage,
- int accessLevel,
- boolean isFinal,
- boolean isStatic,
- SourcePosition position) {
- super(containingClass, containingPackage, accessLevel, isFinal, isStatic,
- position);
- this.baseClassDoc = this;
- }
-
- public ClassDocImpl(ClassDoc containingClass,
- PackageDoc containingPackage,
- ClassDoc[] importedClasses,
- PackageDoc[] importedPackages,
- SourcePosition position) {
- super(containingClass, containingPackage,
- position);
- this.importedClasses=importedClasses;
- this.importedPackages=importedPackages;
- this.baseClassDoc = this;
- }
-
- // Return constructors in class.
- public ConstructorDoc[] constructors() {
- return constructors(true);
- }
-
- public ConstructorDoc[] constructors(boolean filter) {
- return filter ? filteredConstructors : unfilteredConstructors;
- }
-
- // Return true if Serializable fields are explicitly defined with the special class member serialPersistentFields.
- public boolean definesSerializableFields() {
- return definesSerializableFields;
- }
-
- // Return fields in class.
- public FieldDoc[] fields() {
- return fields(true);
- }
-
- public FieldDoc[] fields(boolean filter) {
- return filter ? filteredFields : unfilteredFields;
- }
-
- private static Set primitiveNames;
- static {
- primitiveNames = new HashSet();
- primitiveNames.add("int");
- primitiveNames.add("long");
- primitiveNames.add("char");
- primitiveNames.add("short");
- primitiveNames.add("byte");
- primitiveNames.add("float");
- primitiveNames.add("double");
- primitiveNames.add("boolean");
- }
-
- private Map findClassCache = new HashMap();
-
- public ClassDoc findClass(String className, String dimension)
- {
- ClassDoc cached = findClassCache.get(className + dimension);
- if (null != cached) {
- return cached;
- }
- else {
- ClassDoc classDoc = findClass(className);
-
- if (null!=classDoc) {
- try {
- if (classDoc.dimension().equals(dimension)) {
- return classDoc;
- }
- else {
- ClassDoc rc = (ClassDoc) ((WritableType)classDoc).clone();
- ((WritableType)rc).setDimension(dimension);
- findClassCache.put(className + dimension, rc);
- return rc;
- }
- }
- catch (CloneNotSupportedException e) {
- throw new RuntimeException(e);
- }
- }
- else {
- return null;
- }
- }
- }
-
- public ClassDoc findClass(String className)
- {
- String qualifiedName = Main.getRootDoc().resolveClassName(className, this);
- ClassDoc rc=Main.getRootDoc().classNamed(qualifiedName);
-
- if (null == rc) {
- for (ClassDoc cdi=this; cdi!=null; cdi=cdi.containingClass()) {
- for (ClassDoc sdi=cdi; sdi!=null; sdi=sdi.superclass()) {
- if (sdi instanceof ClassDocProxy) {
- ClassDoc realClass = Main.getRootDoc().classNamed(sdi.qualifiedName());
- if (null != realClass) {
- sdi = realClass;
- }
- }
- rc=Main.getRootDoc().classNamed(sdi.qualifiedName()+"."+className);
- if (rc!=null) return rc;
- }
- }
- }
-
- return rc;
- }
-
- // Get the list of classes declared as imported.
- public ClassDoc[] importedClasses() {
- return importedClasses;
- }
-
- // Get the list of packages declared as imported.
- public PackageDoc[] importedPackages() {
- return importedPackages;
- }
-
- // Return inner classes within this class.
- public ClassDoc[] innerClasses() {
- return innerClasses(true);
- }
-
- public ClassDoc[] innerClasses(boolean filtered) {
- return filtered ? filteredInnerClasses : unfilteredInnerClasses;
- }
-
- void setFilteredInnerClasses(ClassDoc[] filteredInnerClasses) {
- this.filteredInnerClasses=filteredInnerClasses;
- }
-
- void setInnerClasses(ClassDoc[] unfilteredInnerClasses) {
- this.unfilteredInnerClasses=unfilteredInnerClasses;
- }
-
- // Return interfaces implemented by this class or interfaces extended by this interface.
- public ClassDoc[] interfaces() {
- return interfaces;
- }
-
- public void setInterfaces(ClassDoc[] interfaces) {
- this.interfaces=interfaces;
- }
-
- // Return true if this class is abstract
- public boolean isAbstract() {
- return isAbstract || isInterface();
- }
-
- public boolean isInterface() {
- return isInterface;
- }
-
- public boolean isAnnotation() {
- return isAnnotation;
- }
-
- public boolean isEnum()
- {
- return isEnum;
- }
-
- // Return true if this class is abstract
- public void setIsAbstract(boolean b) {
- this.isAbstract=b;
- }
-
- // Return true if this class implements java.io.Externalizable.
- public boolean isExternalizable() {
- return implementsInterface("java.io.Externalizable");
- }
-
- // Return true if this class implements java.io.Serializable.
- public boolean isSerializable() {
- return implementsInterface("java.io.Serializable");
- }
-
- public boolean implementsInterface(String name) {
- for (ClassDoc cdi=this; cdi!=null; cdi=(ClassDoc)cdi.superclass()) {
- if (cdi instanceof ClassDocImpl) {
- ClassDoc[] cdiInterfaces=(ClassDoc[])cdi.interfaces();
- if (null != cdiInterfaces) {
- for (int i=0; i importStatementList) throws ParseException, IOException {
-
- String superclassName = "java.lang.Object";
-
- ClassDocImpl rc=new ClassDocImpl(containingClass,
- containingPackage,
- importedClasses,
- importedPackages,
- null);
- rc.setImportStatementList(importStatementList);
- List implementedInterfaces = new ArrayList();
-
- String word="";
- int item=0;
-
- final int STATE_NORMAL = 1;
- final int STATE_SLASHC = 2;
- final int STATE_STARC = 3;
- final int STATE_ANNO = 4;
-
- int state=STATE_NORMAL;
- int varLevel=0;
- int parLevel=0;
- char prev=0;
- for (int ndx=startIndex; ndx<=endIndex; ++ndx) {
- char c=(ndx==endIndex)?10:source[ndx];
- boolean processWord=false;
- if (state==STATE_SLASHC) {
- if (c=='\n') {
- state=STATE_NORMAL;
- c=0;
- }
- }
- else if (state==STATE_STARC) {
- if (c=='/' && prev=='*') {
- state=STATE_NORMAL;
- c=0;
- }
- }
- else {
- if (c=='/' && prev=='/') {
- state=STATE_SLASHC;
- c=0;
- word=word.substring(0,word.length()-1);
- processWord=true;
- }
- else if (c=='*' && prev=='/') {
- state=STATE_STARC;
- c=0;
- word=word.substring(0,word.length()-1);
- processWord=true;
- }
- else if (c=='@') {
- state=STATE_ANNO;
- word += c;
- }
- else if (c=='(' && state==STATE_ANNO) {
- ++parLevel;
- word += c;
- }
- else if (c==')' && state==STATE_ANNO) {
- --parLevel;
- word += c;
- if (parLevel == 0)
- state=STATE_NORMAL;
- }
- else if (c=='<')
- {
- ++varLevel;
- word += c;
- }
- else if (c=='>')
- {
- --varLevel;
- word += c;
- }
- else if (c=='{' && parLevel == 0 ||
- c==',' && varLevel == 0 && parLevel == 0 ||
- Parser.WHITESPACE.indexOf(c)>=0 && parLevel == 0 && varLevel == 0) {
- processWord=true;
- state=STATE_NORMAL;
- }
- else {
- word+=c;
- }
-
- if (processWord && word.length()>0) {
- if (item==0) {
- if (rc.processModifier(word)) {
- }
- else if (word.equals("abstract")) {
- rc.setIsAbstract(true);
- }
- else if (word.equals("class")) {
- rc.setIsInterface(false);
- item=1;
- }
- else if (word.equals("enum"))
- {
- rc.setIsEnum(true);
- item = 1;
- }
- else if (word.equals("interface")) {
- rc.setIsInterface(true);
- item=1;
- }
- else if (word.equals("@interface")) {
- rc.setIsInterface(true);
- rc.setIsAnnotation(true);
- item=1;
- }
- else if (word.equals("strictfp")) {
- }
- else {
- Main.getRootDoc().printWarning("unknown modifier '"+word+"'");
- }
- }
- else if (word.equals("extends") && !rc.isAnnotation()) {
- if (rc.isInterface()) {
- item=3;
- }
- else {
- item=2;
- }
- }
- else if (word.equals("implements") && !rc.isAnnotation()) {
- item=3;
- }
- else if (item==1) {
- int parameterIndex = word.indexOf("<");
- if (parameterIndex == -1)
- rc.setClass(word);
- else
- {
- rc.setClass(word.substring(0, parameterIndex));
- parseTypeVariables(rc,word.substring(parameterIndex,
- word.length()));
- }
- }
- else if (item==2) {
- //Debug.log(9,"setting baseclass of "+rc+" to "+word);
- int parameterIndex = word.indexOf("<");
- if (parameterIndex == -1)
- superclassName=word;
- else
- {
- /* FIXME: Parse type parameters */
- superclassName=word.substring(0,parameterIndex);
- }
- }
- else if (item==3) {
- int parameterIndex = word.indexOf("<");
- if (parameterIndex == -1)
- implementedInterfaces.add(word);
- else
- {
- /* FIXME: Parse type parameters */
- implementedInterfaces.add(word.substring(0,parameterIndex));
- }
- }
- word="";
- }
-
- if (c=='{' && state==STATE_NORMAL) break;
- }
- prev=c;
- }
-
- if (null != containingClass
- && containingClass.isInterface()) {
- rc.accessLevel = ACCESS_PUBLIC;
- }
-
- if (rc.name()==null) {
- throw new ParseException("No classdef found in expression \""+new String(source,startIndex,endIndex-startIndex)+"\"");
- }
-
- rc.setPosition(ClassDocImpl.getPosition(rc, source, startIndex));
-
- ClassDoc superclassProxy=new ClassDocProxy(superclassName, rc);
-
- if (!rc.qualifiedName().equals("java.lang.Object")) {
- rc.setSuperclass(superclassProxy);
- }
-
- ClassDoc[] interfaces=new ClassDoc[implementedInterfaces.size()];
- for (int i=0; i isSerMethodList = new ArrayList();
-
- if (null != maybeSerMethodList) {
- for (Iterator it = maybeSerMethodList.iterator(); it.hasNext(); ) {
- MethodDocImpl method=(MethodDocImpl)it.next();
- method.resolve();
-
- if (((method.name().equals("readObject")
- && method.signature().equals("(java.io.ObjectInputStream)"))
- || (method.name().equals("writeObject")
- && method.signature().equals("(java.io.ObjectOutputStream)"))
- || (method.name().equals("readExternal")
- && method.signature().equals("(java.io.ObjectInput)"))
- || (method.name().equals("writeExternal")
- && method.signature().equals("(java.io.ObjectOutput)"))
- || (method.name().equals("readResolve")
- && method.signature().equals("()")))) {
-
- isSerMethodList.add(method);
- }
- }
- this.serializationMethods = isSerMethodList.toArray(new MethodDoc[isSerMethodList.size()]);
- maybeSerMethodList=null;
- }
- }
- }
-
- public FieldDoc findFieldRec(String name) {
- return findFieldRec(this, name);
- }
-
- private static FieldDoc findFieldRec(ClassDoc classDoc, String name)
- {
- FieldDoc field = findField(classDoc, name);
- if (null!=field) {
- return field;
- }
- else {
- ClassDoc[] interfaces = classDoc.interfaces();
- for (int i=0; i typeMap = new HashMap();
-
- Type typeForString(String typeName) throws ParseException {
- //String orgTypename=typeName;
- int ndx=typeName.indexOf('[');
- String dim="";
- if (ndx>=0) {
- for (int i=ndx; i=0) {
- dim+=typeName.charAt(i);
- }
- }
- typeName=typeName.substring(0,ndx).trim();
- }
-
- ClassDoc classDoc = findClass(typeName, dim);
- if (null != classDoc) {
- return classDoc;
- }
-
- Type type = typeMap.get(typeName+dim);
- if (null!=type) {
- try {
- if (type.dimension().equals(dim)) {
- return type;
- }
- else {
- Type rc = (Type) ((WritableType)type).clone();
- ((WritableType)rc).setDimension(dim);
- return rc;
- }
- }
- catch (CloneNotSupportedException e) {
- throw new ParseException(e.toString());
- }
- }
-
- if ("boolean".equals(typeName)
- || "char".equals(typeName)
- || "byte".equals(typeName)
- || "short".equals(typeName)
- || "int".equals(typeName)
- || "long".equals(typeName)
- || "void".equals(typeName)
- || "float".equals(typeName)
- || "double".equals(typeName)) {
- Type rc=new TypeImpl(null, typeName, dim);
- typeMap.put(typeName+dim, rc);
- return rc;
- }
-
- if (Main.getInstance().isDocletRunning()) {
- //System.err.println(findClass("java.lang.String"));
- //throw new ParseException("Doclet running, class not found: "+typeName+" ("+orgTypename+")");
- }
- Type rc=new ClassDocProxy(typeName, this);
- ((WritableType)rc).setDimension(dim);
- return rc;
- }
-
- public boolean isException() {
- for (ClassDoc cdi=this;
- cdi!=null;
- cdi=cdi.superclass()) {
-
- if ("java.lang.Exception".equals(cdi.qualifiedName()))
- return true;
- }
- return false;
- }
-
- public boolean isError() {
- for (ClassDoc cdi=this; cdi!=null; cdi=cdi.superclass()) {
- if ("java.lang.Error".equals(cdi.qualifiedName()))
- return true;
- }
- return false;
- }
-
- public boolean isOrdinaryClass() {
- return !isException() && !isError() && !isInterface();
- }
-
- public void setIsInterface(boolean b) {
- this.isInterface=b;
- }
-
- public void setIsAnnotation(boolean b) {
- this.isAnnotation=b;
- }
-
- public void setIsEnum(boolean b)
- {
- isEnum = b;
- }
-
- public ExecutableMemberDoc findExecutableRec(String nameAndSignature) {
-
- ExecutableMemberDoc rc;
- for (ClassDoc cdi=this; cdi!=null; ) {
- rc=findMethod(cdi, nameAndSignature);
- if (rc!=null) return rc;
- rc=findConstructor(cdi, nameAndSignature);
- if (rc!=null) return rc;
-
- ClassDoc _superclass = cdi.superclass();
- if (null == _superclass) {
- break;
- }
- else {
- cdi = _superclass;
- }
- }
- return null;
- }
-
- public static ConstructorDoc findConstructor(ClassDoc classDoc, String nameAndSignature) {
- int ndx=nameAndSignature.indexOf('(');
- if (ndx<=0)
- return null;
- else {
- String fullSignature = resolveSignature(classDoc, nameAndSignature.substring(ndx));
- return findConstructor(classDoc,
- nameAndSignature.substring(0,ndx),
- fullSignature);
- }
- }
-
- public static ConstructorDoc findConstructor(ClassDoc classDoc, String name, String signature) {
- ConstructorDoc[] filteredConstructors = classDoc.constructors(true);
- if (null != filteredConstructors) {
- for (int i=0; i 0 && type.charAt(ndx - 1) == '[' || type.charAt(ndx - 1) == ']') {
- -- ndx;
- }
- String dim = type.substring(ndx);
- type = type.substring(0, ndx);
- ClassDoc typeClass = classDoc.findClass(type);
- if (fullSignature.length() > 1) {
- fullSignature.append(",");
- }
- if (null != typeClass) {
- fullSignature.append(typeClass.qualifiedName());
- }
- else {
- fullSignature.append(type);
- }
- fullSignature.append(dim);
- }
- fullSignature.append(')');
- return fullSignature.toString();
- }
-
- public static MethodDoc findMethod(ClassDoc classDoc, String name, String signature) {
- MethodDoc[] filteredMethods = classDoc.methods(true);
- if (null != filteredMethods) {
- for (int i=0; i maybeSerMethodList;
-
- void setMaybeSerMethodList(List maybeSerMethodList) {
- this.maybeSerMethodList=maybeSerMethodList;
- }
-
- public void setDimension(String dimension) {
- this.dimension = dimension;
- }
-
- public Object clone() throws CloneNotSupportedException {
- ClassDocImpl result = (ClassDocImpl)super.clone();
- result.baseClassDoc = baseClassDoc;
- return result;
- }
-
- public int superHashCode()
- {
- return super.hashCode();
- }
-
- public int hashCode()
- {
- return qualifiedTypeName().hashCode();
- }
-
- public ClassDoc getBaseClassDoc()
- {
- return baseClassDoc;
- }
-
- public FieldDoc getFieldDoc(String name)
- {
- for (int i=0; i visitedFields)
- throws UnknownIdentifierException, IllegalExpressionException
- {
- while (classDoc != null) {
- if (classDoc instanceof ClassDocImpl) {
- FieldDocImpl fieldDoc
- = (FieldDocImpl)((ClassDocImpl)classDoc).getFieldDoc(fieldName);
- if (visitedFields.contains(fieldDoc)) {
- throw new CircularExpressionException("Circular reference detected");
- }
- else if (null != fieldDoc) {
- return fieldDoc.constantValue(visitedFields);
- }
- }
- else {
- ClassDoc[] _interfaces = classDoc.interfaces();
- if (null != _interfaces) {
- for (int i=0; i<_interfaces.length; ++i) {
- if (_interfaces[i] instanceof ClassDocImpl) {
- FieldDocImpl fieldDoc
- = (FieldDocImpl)((ClassDocImpl)_interfaces[i]).getFieldDoc(fieldName);
- if (visitedFields.contains(fieldDoc)) {
- throw new CircularExpressionException("Circular reference detected");
- }
- else if (null != fieldDoc) {
- return fieldDoc.constantValue(visitedFields);
- }
- }
- }
- }
- }
- classDoc = classDoc.superclass();
- }
- throw new UnknownIdentifierException(identifier);
- }
-
- public Object getValue(String identifier, Set visitedFields)
- throws UnknownIdentifierException, IllegalExpressionException
- {
- int ndx = identifier.lastIndexOf('.');
- if (ndx >= 0) {
- String _className = identifier.substring(0, ndx);
- String _fieldName = identifier.substring(ndx + 1);
-
- ClassDoc _classDoc = findClass(_className);
- if (null != _classDoc) {
- return findFieldValue(identifier, _classDoc, _fieldName, visitedFields);
- }
- else {
- throw new UnknownIdentifierException(identifier);
- }
- }
- else {
- return findFieldValue(identifier, this, identifier, visitedFields);
- }
- }
-
- public boolean isPrimitive()
- {
- return false;
- }
-
- // Compares this Object with the specified Object for order.
- public int compareTo(Doc d) {
- int rc;
-
- if (d instanceof ClassDocImpl) {
-
- ClassDocImpl c1 = this;
- ClassDocImpl c2 = (ClassDocImpl)d;
-
- if (null != c1.containingClass() && null == c2.containingClass()) {
- rc = c1.containingClass().compareTo(c2);
- if (0 == rc) {
- rc = 1;
- }
- return rc;
- }
- else if (null == c1.containingClass() && null != c2.containingClass()) {
- rc = c1.compareTo(c2.containingClass());
- if (0 == rc) {
- rc = -1;
- }
- return rc;
- }
- else if (null != c1.containingClass() && null != c2.containingClass()) {
- rc = c1.containingClass().compareTo(c2.containingClass());
- if (0 != rc) {
- return rc;
- }
- }
-
- rc = super.compareTo(d);
- if (0 == rc) {
- return Main.getInstance().getCollator().compare(containingPackage().name(),
- c2.containingPackage().name());
- }
- else {
- return rc;
- }
- }
- else {
- return 1;
- }
- }
-
- private List importStatementList;
-
- public void setImportStatementList(List importStatementList)
- {
- this.importStatementList = new LinkedList();
- this.importStatementList.addAll(importStatementList);
- }
-
- public List getImportSpecifierList()
- {
- return importStatementList;
- }
-
- public TypeVariable[] typeParameters()
- {
- return typeParameters;
- }
-
- /**
- *
- * Parses the type variables declared in the class definition.
- * The syntax is:
- *
- *
- *
- *
TypeParameters:
- *
< TypeParameter { , TypeParameter }
- *
TypeParameter:
- *
Identifier { extendsBound
- * }
- *
Bound:
- *
Type{&Type }
- *
- *
- * @param rc the owning class.
- * @param typeVariables the string to be parsed.
- * @throws ParseException if parsing fails.
- */
- public static void parseTypeVariables(ClassDocImpl rc,
- String typeVariables)
- throws ParseException
- {
- List parsedBounds = null;
- StringTokenizer parameters = new StringTokenizer(typeVariables,
- Parser.WHITESPACE +
- "<>,");
- List variables = new ArrayList();
- while (parameters.hasMoreTokens())
- {
- String parameter = parameters.nextToken();
- StringTokenizer parts = new StringTokenizer(parameter,
- Parser.WHITESPACE);
- TypeVariableImpl variable = new TypeVariableImpl(rc.qualifiedName(),
- parts.nextToken(),"",
- rc);
- if (parts.hasMoreTokens())
- {
- if (!parts.nextToken().equals("extends"))
- throw new ParseException("Invalid type parameter: " + parameter);
- StringTokenizer bounds = new StringTokenizer(parts.nextToken(),
- Parser.WHITESPACE
- + "&");
- parsedBounds = new ArrayList();
- while (bounds.hasMoreTokens())
- {
- String bound = bounds.nextToken();
- int nameSep = bound.lastIndexOf(".");
- String packageName = bound.substring(0, nameSep);
- String boundName = bound.substring(nameSep, bound.length());
- parsedBounds.add(new TypeImpl(packageName,boundName,""));
- }
- }
- if (parsedBounds != null)
- variable.setBounds(parsedBounds);
- variables.add(variable);
- }
- rc.setTypeParameters(variables);
- }
-
- /**
- * Set the type parameters to the contents of the supplied list.
- *
- * @param variables a list of type parameters.
- */
- void setTypeParameters(List variables)
- {
- typeParameters =
- (TypeVariable[]) variables.toArray(new TypeVariable[variables.size()]);
- }
-
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ClassDocProxy.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ClassDocProxy.java
deleted file mode 100644
index aa06add..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ClassDocProxy.java
+++ /dev/null
@@ -1,164 +0,0 @@
-/* gnu.classpath.tools.gjdoc.ClassDocProxy
- Copyright (C) 2001, 2012 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 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 gnu.classpath.tools.gjdoc;
-
-import com.sun.javadoc.*;
-
-import java.io.*;
-
-public class ClassDocProxy implements ClassDoc, WritableType {
-
- private String name;
- private String qualifiedName;
- private ClassDoc classContext;
- private String dimension = "";
-
- public ClassDocProxy(String qualifiedName, ClassDoc classContext)
- {
- this.qualifiedName
- = Main.getRootDoc().resolveClassName(qualifiedName,
- (ClassDocImpl)classContext);
- this.classContext=classContext;
- int pndx=qualifiedName.lastIndexOf('.');
- if (pndx>=0) {
- this.name=qualifiedName.substring(pndx+1);
- }
- else {
- this.name=qualifiedName;
- }
- }
-
- private final String errorText()
- {
- return "CLASS "+qualifiedName+" NOT LOADED.";
- }
-
- public ConstructorDoc[] constructors() { return new ConstructorDoc[0]; }
- public ConstructorDoc[] constructors(boolean filtered) { return new ConstructorDoc[0]; }
- public boolean definesSerializableFields() { return false; }
- public FieldDoc[] fields() { return new FieldDoc[0]; }
- public FieldDoc[] fields(boolean filtered) { return new FieldDoc[0]; }
- public ClassDoc findClass(java.lang.String className) { return null; }
- public ClassDoc[] importedClasses() { return new ClassDoc[0]; }
- public PackageDoc[] importedPackages() { return new PackageDoc[0]; }
- public ClassDoc[] innerClasses() { return new ClassDoc[0]; }
- public ClassDoc[] innerClasses(boolean filtered) { return new ClassDoc[0]; }
- public ClassDoc[] interfaces() { return new ClassDoc[0]; }
- public boolean isAbstract() { return false; }
- public boolean isExternalizable() { return false; }
- public boolean isSerializable() { return false; }
- public MethodDoc[] methods() { return new MethodDoc[0]; }
- public MethodDoc[] methods(boolean filtered) { return new MethodDoc[0]; }
- public FieldDoc[] serializableFields() { return new FieldDoc[0]; }
- public MethodDoc[] serializationMethods() { return new MethodDoc[0]; }
- public boolean subclassOf(ClassDoc cd) { return false; }
- public ClassDoc superclass() { return null; }
- public ClassDoc containingClass() { return null; }
- public PackageDoc containingPackage() {
- /*
- try {
- File file=Main.getRootDoc().findScheduledClass(qualifiedName, classContext);
- if (file!=null) {
- //String clsName=file.getCanonicalFile().getAbsolutePath().substring(new File(Main.getRootDoc().getSourcePath()).getCanonicalFile().getAbsolutePath().length()+1);
- String clsName=file.getAbsolutePath().substring(new File(Main.getRootDoc().getSourcePath()).getAbsolutePath().length()+1);
- clsName=clsName.substring(0,clsName.length()-5).replace(File.separatorChar,'.');
- Debug.log(9,"ClassDocProxy '"+qualifiedName+"': found class "+clsName);
- qualifiedName=clsName;
- }
- return new PackageDocImpl("test.");
- }
- catch (Exception e) {
- return PackageDocImpl.DEFAULT_PACKAGE;
- }
- */
- return PackageDocImpl.DEFAULT_PACKAGE;
- }
-
- public boolean isFinal() { return false; }
- public boolean isPackagePrivate() { return false; }
- public boolean isPrivate() { return false; }
- public boolean isProtected() { return false; }
- public boolean isPublic() { return false; }
- public boolean isStatic() { return false; }
- public String modifiers() { return ""; }
- public int modifierSpecifier() { return 0; }
- public String qualifiedName() { return qualifiedName; }
- public String commentText() { return null; }
- public Tag[] firstSentenceTags() { return new Tag[0]; }
- public String getRawCommentText() { return null; }
- public Tag[] inlineTags() { return new Tag[0]; }
- public boolean isClass() { return false; }
- public boolean isConstructor() { return false; }
- public boolean isError() { return false; }
- public boolean isException() { return false; }
- public boolean isField() { return false; }
- public boolean isIncluded() { return false; }
- public boolean isInterface() { return false; }
- public boolean isMethod() { return false; }
- public boolean isOrdinaryClass() { return false; }
- public String name() { return name; }
- public SourcePosition position() { return null; }
- public SeeTag[] seeTags() { return new SeeTag[0]; }
- public void setRawCommentText(java.lang.String rawDocumentation) {}
- public Tag[] tags() { return new Tag[0]; }
- public Tag[] tags(java.lang.String tagname) { return new Tag[0]; }
- public String typeName() { return name; }
- public String qualifiedTypeName() { return qualifiedName; }
- public String dimension() { return dimension; }
- public ClassDoc asClassDoc() { return this; }
- public TypeVariable asTypeVariable() { return null; }
- public boolean isPrimitive() { return false; }
-
- public String toString() { return "ClassDocProxy{"+qualifiedName+", context="+classContext+"}"; }
-
- public void setDimension(String dimension) {
- this.dimension = dimension;
- }
-
- public Object clone() throws CloneNotSupportedException {
- return super.clone();
- }
-
- // Compares this Object with the specified Object for order.
- public int compareTo(Doc d) {
- return Main.getInstance().getCollator().compare(name(), d.name());
- }
-
- public TypeVariable[] typeParameters() { return new TypeVariable[0]; }
-
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ClassDocReflectedImpl.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ClassDocReflectedImpl.java
deleted file mode 100644
index 9b911d3..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ClassDocReflectedImpl.java
+++ /dev/null
@@ -1,224 +0,0 @@
-/* gnu.classpath.tools.gjdoc.ClassDocReflectedImpl
- Copyright (C) 2001, 2012 Free Software Foundation, Inc.
-
- This file is part of GNU Classpath.
-
- GNU Classpath is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2, or (at your option)
- any later version.
-
- GNU Classpath is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with GNU Classpath; see the file COPYING. If not, write to the
- Free Software Foundation, Inc., 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 gnu.classpath.tools.gjdoc;
-
-import com.sun.javadoc.Doc;
-import com.sun.javadoc.ClassDoc;
-import com.sun.javadoc.ConstructorDoc;
-import com.sun.javadoc.FieldDoc;
-import com.sun.javadoc.MethodDoc;
-import com.sun.javadoc.PackageDoc;
-import com.sun.javadoc.SeeTag;
-import com.sun.javadoc.SourcePosition;
-import com.sun.javadoc.Tag;
-import com.sun.javadoc.TypeVariable;
-
-import java.util.Map;
-import java.util.HashMap;
-
-public class ClassDocReflectedImpl
- implements ClassDoc, WritableType
-{
- private Class clazz;
- private String name;
- private ClassDoc superclassDoc;
- private ClassDoc[] unfilteredInnerClasses;
- private String dimension = "";
-
- private static Map reflectionCache = new HashMap();
-
- public static ClassDocReflectedImpl newInstance(Class clazz)
- {
- ClassDocReflectedImpl result
- = (ClassDocReflectedImpl)reflectionCache.get(clazz);
- if (null != result) {
- return result;
- }
- else {
- return new ClassDocReflectedImpl(clazz);
- }
- }
-
- public ClassDocReflectedImpl(Class clazz)
- {
- reflectionCache.put(clazz, this);
-
- //System.err.println("ClassDocReflectedImpl: " + clazz);
-
- this.clazz = clazz;
- String className = clazz.getName();
- int ndx = className.lastIndexOf('.');
- if (ndx >= 0) {
- this.name = className.substring(ndx + 1);
- }
- else {
- this.name = className;
- }
-
- Class superclass = clazz.getSuperclass();
- if (null != superclass && !clazz.getName().equals("java.lang.Object")) {
- this.superclassDoc = (ClassDocReflectedImpl)reflectionCache.get(superclass);
- if (null == this.superclassDoc) {
- this.superclassDoc = new ClassDocReflectedImpl(superclass);
- }
- }
-
- Class[] innerclasses = clazz.getDeclaredClasses();
- this.unfilteredInnerClasses = new ClassDoc[innerclasses.length];
- for (int i=0; i 0) {
- packageName = packageName.substring(0, ndx);
- }
- else {
- packageName = "";
- }
- PackageDoc result = Main.getRootDoc().findOrCreatePackageDoc(packageName);
- return result;
- }
-
- public boolean isFinal() { return false; }
- public boolean isPackagePrivate() { return false; }
- public boolean isPrivate() { return false; }
- public boolean isProtected() { return false; }
- public boolean isPublic() { return false; }
- public boolean isStatic() { return false; }
- public String modifiers() { return ""; }
- public int modifierSpecifier() { return 0; }
- public String qualifiedName() { return clazz.getName().replace('$', '.'); }
- public String commentText() { return null; }
- public Tag[] firstSentenceTags() { return new Tag[0]; }
- public String getRawCommentText() { return null; }
- public Tag[] inlineTags() { return new Tag[0]; }
- public boolean isClass() { return false; }
- public boolean isConstructor() { return false; }
- public boolean isError() { return false; }
- public boolean isException() { return false; }
- public boolean isField() { return false; }
- public boolean isIncluded() { return false; }
- public boolean isInterface() { return false; }
- public boolean isMethod() { return false; }
- public boolean isOrdinaryClass() { return false; }
- public String name() { return name; }
- public SourcePosition position() { return null; }
- public SeeTag[] seeTags() { return new SeeTag[0]; }
- public void setRawCommentText(java.lang.String rawDocumentation) {}
- public Tag[] tags() { return new Tag[0]; }
- public Tag[] tags(java.lang.String tagname) { return new Tag[0]; }
- public String typeName() { return name; }
- public String qualifiedTypeName() { return qualifiedName(); }
- public ClassDoc asClassDoc() { return this; }
- public TypeVariable asTypeVariable() { return null; }
- public boolean isPrimitive() { return false; }
-
- public String toString() { return "ClassDocReflectedImpl{"+qualifiedName()+"}"; }
-
- public int compareTo(Doc d) {
- return Main.getInstance().getCollator().compare(name(), d.name());
- }
-
- public String dimension() { return dimension; }
-
- public void setDimension(String dimension) {
- this.dimension = dimension;
- }
-
- public Object clone() throws CloneNotSupportedException {
- return super.clone();
- }
-
- public TypeVariable[] typeParameters() { return new TypeVariable[0]; }
-
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ConstructorDocImpl.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ConstructorDocImpl.java
deleted file mode 100644
index ad31ba6..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ConstructorDocImpl.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/* gnu.classpath.tools.gjdoc.ConstructorDocImpl
- Copyright (C) 2001 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a 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 gnu.classpath.tools.gjdoc;
-
-import java.util.*;
-import com.sun.javadoc.*;
-
-public class ConstructorDocImpl extends ExecutableMemberDocImpl implements ConstructorDoc {
-
- public ConstructorDocImpl(ClassDoc containingClass,
- PackageDoc containingPackage,
- SourcePosition position) {
-
- super(containingClass,
- containingPackage,
- position);
- }
-
- // Is this Doc item a constructor.
- public boolean isConstructor() {
- return true;
- }
-
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/Debug.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/Debug.java
deleted file mode 100644
index d502023..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/Debug.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/* gnu.classpath.tools.gjdoc.Debug
- Copyright (C) 2001 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a 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 gnu.classpath.tools.gjdoc;
-
-public final class Debug {
-
- //private static int logLevel = 7;
- private static int logLevel = 0;
-
- static {
- String llProp = System.getProperty("gnu.classpath.tools.gjdoc.LogLevel");
- if (null!=llProp) logLevel = Integer.parseInt(llProp);
- }
-
- public static final void log(String msg) {
- System.err.println(msg);
- }
-
- public static final void log(int level, String msg) {
- if (level<=logLevel) {
- System.err.println(msg);
- }
- }
-
- public static final void dumpArray(int level, Object[] array) {
- if (level<=logLevel) {
- for (int i=0; i=0)
- return Main.getRootDoc().readRawComment(rawDocOffset);
- else
- return null;
- }
-
- // Return comment as tags.
- public Tag[] inlineTags() {
-
- Tag[] rc=(Tag[])tagMap.get("inline");
- if (rc==null) rc=new Tag[0];
- return rc;
- }
-
- // Is this Doc item a class.
- public boolean isClass() {
- return false;
- }
-
- // Is this Doc item a constructor? False until overridden.
- public boolean isConstructor() {
- return false;
- }
-
- // Is this Doc item a error class? False until overridden.
- public boolean isError() {
- return false;
- }
-
- // Is this Doc item a exception class? False until overridden.
- public boolean isException() {
- return false;
- }
-
- // Is this Doc item a field? False until overridden.
- public boolean isField() {
- return false;
- }
-
- // return true if this Doc is include in the active set.
- public boolean isIncluded() {
- return false;
- }
-
- // Is this Doc item a interface? False until overridden.
- public boolean isInterface() {
- return false;
- }
-
- // Is this Doc item a simple method (i.e.
- public boolean isMethod() {
- return false;
- }
-
- public boolean isPackage() {
- return false;
- }
-
- // Is this Doc item a ordinary class (i.e.
- public boolean isOrdinaryClass() {
- return false;
- }
-
- // Return the see also tags in this Doc item.
- public SeeTag[] seeTags() {
- return (SeeTag[])getTagArr("see", seeTagEmptyArr);
- }
-
- protected Tag[] getTagArr(String kindOfTag, Tag[] defaultRc) {
- Tag[] rc=(Tag[])tagMap.get(kindOfTag);
- if (rc==null) rc=defaultRc;
- return rc;
- }
-
- // Set the full unprocessed text of the comment.
- public void setRawCommentText(String rawDocumentation) {
- this.rawDocumentation=rawDocumentation;
- }
-
- public void resolveComments() {
-
- if (rawDocumentation!=null && tagMap.isEmpty()) {
- char[] charArray = rawDocumentation.toCharArray();
- int length = rawDocumentation.length();
- int startOffset = 0;
- int endOffset = 0;
- if (charArray[0] == '/'
- && charArray[1] == '*'
- && charArray[2] == '*'
- && charArray[length - 2] == '*'
- && charArray[length - 1] == '/') {
-
- startOffset = 3;
- endOffset = 2;
- }
-
- this.tagMap=parseCommentTags(charArray,
- startOffset,
- length - endOffset,
- getContextClass(),
- getContextMember(),
- null,
- boilerplateComment);
-
- if (Main.getInstance().isCacheRawComments()) {
- rawDocOffset=Main.getRootDoc().writeRawComment(rawDocumentation);
- rawDocumentation=null;
- }
-
- resolveTags();
- }
- else if (tagMap.isEmpty() && null != boilerplateComment) {
- tagMap.put("all", new Tag[] { new TagImpl("@boilerplate", boilerplateComment,getContextClass(),null) });
- tagMap.put("@boilerplate", new Tag[] { new TagImpl("@boilerplate", boilerplateComment,getContextClass(),null) });
- }
- }
-
- public static int skipHtmlWhitespace(char[] buffer, int startIndex) {
- while (startIndex < buffer.length) {
- char c=buffer[startIndex];
- if (!Parser.isWhitespace(c)) {
- break;
- }
- else {
- ++ startIndex;
- }
- }
- return startIndex;
- }
-
- /**
- * Looks for an end-of-sentence marker in text,
- * starting at startIndex and stopping at
- * endIndex.
- *
- * @param text the text to be searched
- * @param startIndex index in text at which to start
- * @param endIndex index in text at which to stop
- *
- * @return the index of the character following the end-of-sentence
- * marker, endIndex if no end-of-sentence
- * marker could be found, or -1 if not implemented.
- */
- private static int findEndOfSentence(char[] text, int startIndex,
- int endIndex)
- {
- if (Main.getInstance().isUseBreakIterator()) {
- Segment segment = new Segment(text, startIndex, endIndex - startIndex);
- BreakIterator breakIterator = BreakIterator.getSentenceInstance(Main.getInstance().getLocale());
- breakIterator.setText(segment);
- int result = breakIterator.next();
- if (BreakIterator.DONE == result) {
- return endIndex;
- }
- else {
- return result;
- }
- }
- else {
- while (startIndex < endIndex) {
- if (text[startIndex] == '.'
- && (startIndex+1 == endIndex
- || Character.isWhitespace(text[startIndex+1])
- || isHTMLBreakTag(text, startIndex+1, endIndex)
- )) {
- return startIndex;
- }
-
- startIndex++;
- }
- return endIndex;
- }
- }
-
- /**
- * Returns true is the text from start to end begins with a 'p' or 'br' tag.
- */
- private static boolean isHTMLBreakTag(char[] text, int start, int end)
- {
- String[] breakTags = {
- "p>", "/p>", "h1>", "h2>", "h3>", "h4>", "h5>", "h6>", "hr>",
- "pre>", "/pre>"
- };
-
- if (text[start] == '<') {
-
- outer:
- for (int i=0; irawDocStart) {
-
- firstSentenceEnd = findEndOfSentence(comment, rawDocStart, comment.length);
-
- if (firstSentenceEnd < 0) {
- BreakIterator boundary = BreakIterator.getSentenceInstance(Locale.ENGLISH);
- boundary.setText(new ArrayCharacterIterator(comment, rawDocStart));
- boundary.first();
- boundary.next();
- firstSentenceEnd = boundary.current();
- }
-
- // Always include period at end of sentence if there is one.
- if (firstSentenceEnd < comment.length
- && '.' == comment[firstSentenceEnd]) {
- ++ firstSentenceEnd;
- }
- }
-
- final int STATE_BEGOFLINE = 1;
- final int STATE_TEXT = 2;
- final int STATE_PARAM = 3;
- final int STATE_PARAMVALUE = 4;
- final int STATE_PARAMWRAP = 5;
- final int STATE_INLINEPARAM = 6;
- final int STATE_INLINEPARAMVALUE = 7;
- final int STATE_WHITESPACE = 8;
- final int STATE_INLINEPARAMVALUE_BOL = 9;
- final int STATE_IPV_WHITESPACE = 10;
-
- int state=STATE_BEGOFLINE;
- int prevState=STATE_TEXT;
-
- setBufLength(0);
- whitespaceBuf.setLength(0);
-
- String paramName="", paramValue="";
-
- Map tags=new HashMap();
- tags.put("inline", new LinkedList());
- tags.put("first", new LinkedList());
- tags.put("all", new LinkedList());
-
- final char EOL=(char)-1;
-
- for (int i=rawDocStart; i<=endIndex; ++i) {
- char c=(i0) {
- addTag(tags, "text", bufToString(), i0) {
- AbstractTagImpl newTag = addTag(tags, "text", bufToString(), i0) {
- AbstractTagImpl newTag = addTag(tags, "text", bufToString(), i0) {
- AbstractTagImpl newTag = addTag(tags, "text", bufToString(), i")) {
- newTag = new TextTagImpl(txt.substring(3));
- }
- else if (txt.endsWith("
")) {
- newTag = new TextTagImpl(txt.substring(0, txt.length() - 4));
- }
- else {
- newTag = tag;
- }
- ((List)tags.get("first")).add(newTag);
-
- }
- else {
- ((List)tags.get("first")).add(tag);
- }
- }
- }
- else {
- ((List)tags.get("all")).add(tag);
- }
-
- List l=((List)tags.get(name));
- if (l==null) {
- l=new LinkedList();
- tags.put(name,l);
- }
- l.add(tag);
-
- return isInline ? tag : contextTag;
- }
- else {
- return null;
- }
- }
-
- // Return all tags in this Doc item.
- public Tag[] tags() {
- Tag[] rc=(Tag[])tagMap.get("all");
- if (rc==null) rc=new Tag[0];
- return rc;
- }
-
- // Return tags of the specified kind in this Doc item.
- public Tag[] tags(java.lang.String tagname) {
- Tag[] rc=(Tag[])tagMap.get(tagname);
- if (rc==null) rc=new Tag[0];
- return rc;
- }
-
- protected String rawDocumentation;
- protected long rawDocOffset=-1;
-
- protected Map tagMap = new HashMap();
-
- public Map getTagMap() { return tagMap; }
-
- protected void resolveTags() {
-
- Tag[] tags=tags();
- for (int i=0; iDocErrorReporter: writes
- * to System.err.
- */
-public class ErrorReporter implements DocErrorReporter {
-
- private PrintStream out;
-
- /**
- * Keeps track of the number of errors occured
- * during generation.
- */
- private int errorCount=0;
-
- /**
- * Keeps track of the number of warnings occured
- * during generation.
- */
- private int warningCount=0;
-
- /*
- * When true, no notices will be emitted.
- */
- private boolean quiet = false;
-
- /*
- * When true, no warnings will be emitted.
- */
- private boolean noWarn = false;
-
- public ErrorReporter()
- {
- this.out = System.err;
- }
-
- // Print error message, increment error count.
- public void printError(java.lang.String msg) {
- out.println("ERROR: "+msg);
- ++errorCount;
- }
-
- // Print error message, increment error count.
- public void printFatal(java.lang.String msg) {
- out.println("FATAL: "+msg);
- System.exit(10);
- }
-
- // Print a message.
- public void printNotice(java.lang.String msg) {
- if (!quiet) {
- out.println(msg);
- }
- }
-
- // Print warning message, increment warning count.
- public void printWarning(java.lang.String msg) {
- if (!noWarn) {
- out.println("WARNING: "+msg);
- ++warningCount;;
- }
- }
-
- public int getErrorCount() {
- return errorCount;
- }
-
- public int getWarningCount() {
- return warningCount;
- }
-
- /**
- * Specify whether notices should be printed.
- */
- public void setQuiet(boolean quiet) {
- this.quiet = quiet;
- }
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ExecutableMemberDocImpl.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ExecutableMemberDocImpl.java
deleted file mode 100644
index 8f2a49c..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ExecutableMemberDocImpl.java
+++ /dev/null
@@ -1,427 +0,0 @@
-/* gnu.classpath.tools.gjdoc.ExecutableMemberDocImpl
- Copyright (C) 2001, 2012 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 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 gnu.classpath.tools.gjdoc;
-
-import java.util.*;
-import java.io.*;
-import com.sun.javadoc.*;
-
-public class ExecutableMemberDocImpl extends MemberDocImpl implements ExecutableMemberDoc {
-
- protected ExecutableMemberDocImpl(ClassDoc containingClass,
- PackageDoc containingPackage,
- SourcePosition position) {
-
- super(containingClass,
- containingPackage,
- position);
- }
-
- protected boolean processModifier(String word) {
- if (super.processModifier(word)) {
- return true;
- }
- else if (word.equals("synchronized")) {
- isSynchronized=true;
- return true;
- }
- else if (word.equals("native")) {
- isNative=true;
- return true;
- }
- else if (word.equals("abstract")) {
- isAbstract=true;
- return true;
- }
- else {
- return false;
- }
- }
-
- private boolean isAbstract=false;
- private boolean isNative=false;
- private boolean isSynchronized=false;
-
- public boolean isAbstract() { return isAbstract; }
-
- public boolean isNative() { return isNative; }
-
- public boolean isSynchronized() { return isSynchronized; }
-
- public ClassDoc[] thrownExceptions() { return thrownExceptions; }
-
- public Parameter[] parameters() { return parameters; }
-
- public ThrowsTag[] throwsTags() {
- return (ThrowsTag[])getTagArr("throws", throwsTagEmptyArr);
- }
-
- public ParamTag[] paramTags() {
- return (ParamTag[])getTagArr("param", paramTagEmptyArr);
- }
-
- public String signature() { return signature; }
- public String flatSignature() { return flatSignature; }
-
- public ClassDoc overriddenClass() {
- for (ClassDoc cdi=(ClassDoc)containingClass().superclass(); cdi!=null; cdi=(ClassDoc)cdi.superclass()) {
- if (null!=ClassDocImpl.findMethod(cdi, name(), signature()))
- return cdi;
- }
- return null;
- }
-
- public static ExecutableMemberDocImpl createFromSource(ClassDoc containingClass,
- PackageDoc containingPackage,
- char[] source, int startIndex, int endIndex) throws IOException, ParseException {
-
- int lastchar=32;
- StringBuffer methodName=new StringBuffer();
- for (int i=startIndex; i=0 && Parser.WHITESPACE.indexOf(source[i])<0)
- || (lastchar == ']' && Parser.WHITESPACE.indexOf(source[i])<0 && '[' != source[i])) {
- methodName.setLength(0);
- methodName.append(source[i]);
- }
- else if (Parser.WHITESPACE.indexOf(source[i])<0) {
- methodName.append(source[i]);
- }
- lastchar=source[i];
- }
-
- ExecutableMemberDocImpl rc;
-
- SourcePosition position = DocImpl.getPosition(containingClass, source, startIndex);
-
- if (methodName.toString().equals(((ClassDocImpl)containingClass).getClassName())) {
-
- // Constructor
-
- rc=new ConstructorDocImpl(containingClass,
- containingPackage,
- position);
- }
- else {
-
- // Normal method
-
- rc=new MethodDocImpl(containingClass,
- containingPackage,
- position);
- }
-
- if (containingClass.isInterface())
- rc.accessLevel=ACCESS_PUBLIC;
-
- int ndx=rc.parseModifiers(source, startIndex, endIndex);
- StringBuffer name = new StringBuffer();
-
- final int STATE_NORMAL=1;
- final int STATE_STARC=2;
- final int STATE_SLASHC=3;
-
- int state=STATE_NORMAL;
-
- while (source[ndx]!='(' && ndx0) {
- int n = param.length()-1;
- int paramNameStart = 0;
- while (n >= 0) {
- char c = param.charAt(n);
- if ('[' == c || ']' == c || Parser.WHITESPACE.indexOf(c)>=0) {
- paramNameStart = n + 1;
- break;
- }
- else {
- -- n;
- }
- }
- while (n >= 0 && ('[' == param.charAt(n)
- || ']' == param.charAt(n)
- || Parser.WHITESPACE.indexOf(param.charAt(n))>=0)) {
- -- n;
- }
- int paramTypeEnd = n + 1;
- int paramTypeStart = 0;
- while (n >= 0) {
- char c = param.charAt(n);
- if ('[' == c || ']' == c || Parser.WHITESPACE.indexOf(c)>=0) {
- paramTypeStart = n + 1;
- break;
- }
- else {
- -- n;
- }
- }
-
- String paramType;
- String paramName;
- if (0 != paramNameStart) {
- paramType=param.substring(paramTypeStart, paramTypeEnd);
- paramName=param.substring(paramNameStart);
- }
- else {
- paramName = "";
- StringBuffer paramTypeBuffer = new StringBuffer();
- for (int i=0; i=0) {
- word=word.trim();
- if (!haveThrowsKeyword && word.length()>0) {
- if (word.equals("throws")) haveThrowsKeyword=true;
- else System.err.println("ARGH! "+word);
- word="";
- }
- }
- else if (source[endx]=='[' || source[endx]==']') {
- dimSuffix += source[endx];
- }
- else if (source[endx]==',' || source[endx]=='{' || source[endx]==';') {
- word=word.trim();
- if (word.length()>0) {
- ClassDoc exceptionType=rc.containingClass().findClass(word);
- if (exceptionType==null) {
- exceptionType=new ClassDocProxy(word,
- rc.containingClass());
- }
- thrownExceptionsList.add(exceptionType);
- }
- if (source[endx]=='{') {
- break;
- }
- else {
- word="";
- }
- }
- else {
- word+=source[endx];
- }
- }
-
- if (dimSuffix.length()>0) {
- rc.setTypeName(rc.getTypeName()+dimSuffix);
- }
-
- rc.setThrownExceptions((ClassDoc[])thrownExceptionsList.toArray(new ClassDoc[0]));
-
- return rc;
- }
-
- private ClassDoc[] thrownExceptions;
- private Parameter[] parameters;
- private String signature;
- private String flatSignature;
-
- void setParameters(Parameter[] parameters) {
- this.parameters=parameters;
- }
-
- void setThrownExceptions(ClassDoc[] thrownExceptions) {
- this.thrownExceptions=thrownExceptions;
- }
-
- void resolve() {
-
- for (int i=0; i0) {
- signatureBuf.append(",");
- flatSignatureBuf.append(",");
- }
- signatureBuf.append(parameters[i].type().qualifiedTypeName());
- flatSignatureBuf.append(parameters[i].type().typeName());
- signatureBuf.append(parameters[i].type().dimension());
- flatSignatureBuf.append(parameters[i].type().dimension());
- }
- this.signature="("+signatureBuf.toString()+")";
- this.flatSignature="("+flatSignatureBuf.toString()+")";
-
- super.resolve();
-
- }
-
- public int compareTo(Doc d) {
- int rc;
- if (d instanceof MemberDocImpl) {
- MemberDocImpl otherMember = (MemberDocImpl)d;
- rc = name().compareTo(otherMember.name());
- if (0 == rc) {
- if (d instanceof ExecutableMemberDocImpl) {
- rc = signature().compareTo(((ExecutableMemberDocImpl)d).signature());
- if (0 == rc) {
- return containingClass().compareTo(otherMember.containingClass());
- }
- }
- else {
- rc = 1;
- }
- }
- }
- else {
- rc = 1;
- }
- return rc;
- }
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/FieldDocImpl.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/FieldDocImpl.java
deleted file mode 100644
index 4fa8e5d..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/FieldDocImpl.java
+++ /dev/null
@@ -1,408 +0,0 @@
-/* gnu.classpath.tools.gjdoc.FieldDocImpl
- Copyright (C) 2001, 2012 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 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 gnu.classpath.tools.gjdoc;
-
-import java.util.*;
-import com.sun.javadoc.*;
-import java.lang.reflect.Modifier;
-
-import gnu.classpath.tools.gjdoc.expr.Evaluator;
-import gnu.classpath.tools.gjdoc.expr.CircularExpressionException;
-import gnu.classpath.tools.gjdoc.expr.IllegalExpressionException;
-
-public class FieldDocImpl
- extends MemberDocImpl
- implements FieldDoc, Cloneable
-{
-
- private boolean isTransient;
- private boolean isVolatile;
- private String valueLiteral;
- private Object constantValue;
- private boolean constantValueEvaluated;
-
- private FieldDocImpl(ClassDoc containingClass,
- PackageDoc containingPackage,
- SourcePosition position) {
-
- super(containingClass,
- containingPackage,
- position);
- }
-
- private static FieldDocImpl createFieldDoc(FieldDocImpl prototype,
- String fieldDef,
- String fieldValueLiteral)
- {
- if (null != fieldValueLiteral && fieldValueLiteral.length() == 0) {
- fieldValueLiteral = null;
- }
-
- try {
- FieldDocImpl fieldDoc=(FieldDocImpl)prototype.clone();
- String dimSuffix="";
- while (fieldDef.trim().endsWith("[")
- || fieldDef.trim().endsWith("]")) {
- fieldDef=fieldDef.trim();
- dimSuffix=fieldDef.charAt(fieldDef.length()-1)+dimSuffix;
- fieldDef=fieldDef.substring(0,fieldDef.length()-1);
- }
-
- fieldDoc.setTypeName(fieldDoc.getTypeName()+dimSuffix);
- fieldDoc.setName(fieldDef.trim());
- fieldDoc.setValueLiteral(fieldValueLiteral);
- return fieldDoc;
- }
- catch (CloneNotSupportedException e) {
- // should not happen
- e.printStackTrace();
- return null;
- }
- }
-
- public static Collection createFromSource(ClassDoc containingClass,
- PackageDoc containingPackage,
- char[] source, int startIndex, int endIndex) {
-
- List rcList=new ArrayList();
-
- FieldDocImpl fd=new FieldDocImpl(containingClass,
- containingPackage,
- DocImpl.getPosition(containingClass, source, startIndex));
-
- int ndx=fd.parseModifiers(source, startIndex, endIndex);
-
- if (containingClass.isInterface()) {
- fd.accessLevel = ACCESS_PUBLIC;
- }
-
- final int STATE_FIELDNAME = 1;
- final int STATE_FIELDVALUE = 2;
- final int STATE_QUOTE = 3;
- final int STATE_QUOTEBS = 4;
- final int STATE_SQUOTE = 5;
- final int STATE_SQUOTEBS = 6;
- final int STATE_COMMENT = 7;
- final int STATE_LINECOMMENT = 8;
-
- int state = STATE_FIELDNAME;
- int prevState = state;
-
- int bracketCount = 0;
-
- StringBuffer fieldNameBuf = new StringBuffer();
- StringBuffer fieldValueLiteralBuf = new StringBuffer();
-
- for (int i=ndx; i 0) {
- rcList.add(createFieldDoc(fd, fieldNameBuf.toString(),
- fieldValueLiteralBuf.toString()));
- }
-
- return rcList;
- }
-
- public boolean isField() {
- return true;
- }
-
- public boolean isTransient() { return isTransient; }
-
- public boolean isVolatile() { return isVolatile; }
-
- public SerialFieldTag[] serialFieldTags() { return new SerialFieldTag[0]; }
-
- public int modifierSpecifier() {
- return super.modifierSpecifier()
- | (isVolatile()?Modifier.VOLATILE:0)
- | (isTransient()?Modifier.TRANSIENT:0)
- ;
- }
-
- protected boolean processModifier(String word) {
- if (super.processModifier(word)) {
- return true;
- }
- else if (word.equals("transient")) {
- isTransient=true;
- return true;
- }
- else if (word.equals("volatile")) {
- isVolatile=true;
- return true;
- }
- else {
- return false;
- }
- }
-
- void resolve() {
- resolveTags();
- }
-
- public boolean hasSerialTag() {
- return true; //tagMap.get("serial")!=null;
- }
-
- public String toString() { return name(); }
-
- public Object constantValue() {
- return constantValue(new HashSet());
- }
-
- public Object constantValue(Set visitedFields) {
- if (!isStatic()
- || !isFinal()
- || (!type().isPrimitive() && !"java.lang.String".equals(type().qualifiedTypeName()))
- || type.dimension().length()>0
- || null == valueLiteral) {
-
- return null;
-
- }
- else {
- if (!constantValueEvaluated) {
-
- visitedFields.add(this);
-
- String expression = "(" + type().typeName() + ")(" + valueLiteral + ")";
- try {
- this.constantValue = Evaluator.evaluate(expression,
- visitedFields,
- (ClassDocImpl)containingClass());
- }
- catch (CircularExpressionException e) {
- // FIXME: This should use the error reporter
- System.err.println("WARNING: Cannot resolve expression for field " + containingClass.qualifiedTypeName() + "." + name() + ": " + e.getMessage());
- }
- catch (IllegalExpressionException ignore) {
- }
- constantValueEvaluated = true;
- }
- return this.constantValue;
- }
- }
-
- private static void appendCharString(StringBuffer result, char c, boolean inSingleCuotes)
- {
- switch (c) {
- case '\b': result.append("\\b"); break;
- case '\t': result.append("\\t"); break;
- case '\n': result.append("\\n"); break;
- case '\f': result.append("\\f"); break;
- case '\r': result.append("\\r"); break;
- case '\"': result.append("\\\""); break;
- case '\'': result.append(inSingleCuotes ? "\\'" : "'"); break;
- default:
- if (c >= 32 && c <= 127) {
- result.append(c);
- }
- else {
- result.append("\\u");
- String hexValue = Integer.toString((int)c, 16);
- int zeroCount = 4 - hexValue.length();
- for (int i=0; iinheritDoc tag.
- */
-public class InheritDocTagImpl
- extends AbstractTagImpl
-{
- private ClassDocImpl contextClass;
- private MemberDocImpl contextMember;
- private AbstractTagImpl contextTag;
-
- public InheritDocTagImpl(ClassDocImpl contextClass,
- MemberDocImpl contextMember,
- AbstractTagImpl contextTag)
- {
- super("");
- this.contextClass = contextClass;
- this.contextMember = contextMember;
- this.contextTag = contextTag;
- }
-
- public String kind() {
- return "@inheritDoc";
- }
-
- public String name() {
- return "@inheritDoc";
- }
-
- private TagContainer inheritedDoc;
- private boolean inheritedDocInitialized = false;
-
- private TagContainer getInheritedDoc()
- {
- if (!inheritedDocInitialized) {
- inheritedDoc = DocImpl.findInheritedDoc(contextClass, contextMember, contextTag);
- inheritedDocInitialized = true;
- }
- return inheritedDoc;
- }
-
- public Tag[] firstSentenceTags() {
- TagContainer _inheritedDoc = getInheritedDoc();
- if (_inheritedDoc != null) {
- return _inheritedDoc.firstSentenceTags();
- }
- else {
- return null;
- }
- }
-
- public Tag[] inlineTags() {
- TagContainer _inheritedDoc = getInheritedDoc();
- if (_inheritedDoc != null) {
- return _inheritedDoc.inlineTags();
- }
- else {
- return null;
- }
- }
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/JavadocWrapper.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/JavadocWrapper.java
deleted file mode 100644
index 93c08b9..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/JavadocWrapper.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/* gnu.classpath.tools.gjdoc.JavadocWrapper
- Copyright (C) 2001 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a 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 gnu.classpath.tools.gjdoc;
-
-import java.util.*;
-import java.io.*;
-import com.sun.javadoc.*;
-
-public class JavadocWrapper {
-
- public static void main(String[] args) throws Exception {
-
- Timer.setStartTime();
- Class sunJavadocMain=Class.forName("com.sun.tools.javadoc.Main");
- sunJavadocMain.getMethod("main", new Class[]{String[].class}).invoke(null, new Object[]{args});
- }
-
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/LinkTagImpl.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/LinkTagImpl.java
deleted file mode 100644
index 3b2b8a8..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/LinkTagImpl.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/* gnu.classpath.tools.gjdoc.LinkTagImpl
- Copyright (C) 2001 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a 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 gnu.classpath.tools.gjdoc;
-
-import com.sun.javadoc.*;
-import java.util.*;
-import java.text.*;
-
-public class LinkTagImpl extends SeeTagImpl {
-
- private String name;
-
- public LinkTagImpl(String name, String _text, ClassDocImpl contextClass) {
- super(_text, contextClass);
- this.name = name;
- }
-
- public String name() { return name; }
-
- public Tag[] firstSentenceTags() {
- return new Tag[0]; //inlineTags();
- }
-
- public Tag[] inlineTags() {
- return new Tag[0]; //new Tag[]{new TextTagImpl(referencedClassName)};
- }
-
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/Main.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/Main.java
deleted file mode 100644
index df9c8d9..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/Main.java
+++ /dev/null
@@ -1,1829 +0,0 @@
-/* gnu.classpath.tools.gjdoc.Main
- Copyright (C) 2001, 2012 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 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 gnu.classpath.tools.gjdoc;
-
-import com.sun.javadoc.*;
-import java.io.*;
-import java.util.*;
-import java.lang.reflect.*;
-import java.text.Collator;
-
-import gnu.classpath.tools.FileSystemClassLoader;
-
-/**
- * Class that will launch the gjdoc tool.
- */
-public final class Main
-{
-
- /**
- * Do we load classes that are referenced as base class?
- */
- static final boolean DESCEND_SUPERCLASS = true;
-
- /**
- * Do we load classes that are referenced as interface?
- */
- static final boolean DESCEND_INTERFACES = false;
-
- /**
- * Do we load classes that are imported in a source file?
- */
- static final boolean DESCEND_IMPORTED = true;
-
- /**
- * Document only public members.
- */
- static final int COVERAGE_PUBLIC = 0;
-
- /**
- * Document only public and protected members.
- */
- static final int COVERAGE_PROTECTED = 1;
-
- /**
- * Document public, protected and package private members.
- */
- static final int COVERAGE_PACKAGE = 2;
-
- /**
- * Document all members.
- */
- static final int COVERAGE_PRIVATE = 3;
-
- /*
- * FIXME: This should come from a ResourceBundle
- */
- private static final String STRING_TRY_GJDOC_HELP =
- "Try `gjdoc --help' for more information.";
-
- /**
- * Grid for looking up whether a particular access level is included in the
- * documentation.
- */
- static final boolean[][] coverageTemplates = new boolean[][]
- { new boolean[]
- { true, false, false, false }, // public
- new boolean[]
- { true, true, false, false }, // protected
- new boolean[]
- { true, true, true, false }, // package
- new boolean[]
- { true, true, true, true }, // private
- };
-
- /**
- * Holds the Singleton instance of this class.
- */
- private static Main instance = new Main();
-
- /**
- * Avoid re-instantiation of this class.
- */
- private Main()
- {
- }
-
- private static RootDocImpl rootDoc;
-
- private ErrorReporter reporter;
-
- /**
- * Cache for version string from resource /version.properties
- */
- private String gjdocVersion;
-
- /**
- * false during Phase I: preparation of the documentation data.
- * true during Phase II: documentation output by doclet.
- */
- boolean docletRunning = false;
-
- //---- Command line options
-
- /**
- * Option "-doclet": name of the Doclet class to use.
- */
- private String option_doclet = "gnu.classpath.tools.doclets.htmldoclet.HtmlDoclet";
-
- /**
- * Option "-coverage": which members to include in generated documentation.
- */
- private int option_coverage = COVERAGE_PROTECTED;
-
- /**
- * Option "-help": display command line usage.
- */
- private boolean option_help;
-
- /**
- * Option "-docletpath": path to doclet classes.
- */
- private String option_docletpath;
-
- /**
- * Option "-sourcepath": path to the Java source files to be documented.
- * FIXME: this should be a list of paths
- */
- private List option_sourcepath = new ArrayList();
-
- /**
- * Option "-locale:" Specify the locale charset of Java source files.
- */
- private Locale option_locale = new Locale("en", "us");
-
- /**
- * Option "-encoding": Specify character encoding of Java source files.
- */
- private String option_encoding;
-
- /**
- * Option "-source:" should be 1.4 to handle assertions, 1.1 is no
- * longer supported.
- */
- private String option_source = "1.2";
-
- /**
- * Option "-subpackages": list of subpackages to be recursively
- * added.
- */
- private List option_subpackages = new ArrayList();
-
- /**
- * Option "-exclude": list of subpackages to exclude.
- */
- private List option_exclude = new ArrayList();
-
- /**
- * Option "-breakiterator" - whether to use BreakIterator for
- * detecting the end of the first sentence.
- */
- private boolean option_breakiterator;
-
- /**
- * Option "-licensetext" - whether to copy license text.
- */
- private boolean option_licensetext;
-
- /**
- * The locale-dependent collator used for sorting.
- */
- private Collator collator;
-
- /**
- * true when --version has been specified on the command line.
- */
- private boolean option_showVersion;
-
- /**
- * true when -bootclasspath has been specified on the command line.
- */
- private boolean option_bootclasspath_specified;
-
- /**
- * true when -all has been specified on the command line.
- */
- private boolean option_all;
-
- /**
- * true when -reflection has been specified on the command line.
- */
- private boolean option_reflection;
-
- // TODO: add the rest of the options as instance variables
-
- /**
- * Parse all source files/packages and subsequentially start the Doclet given
- * on the command line.
- *
- * @param allOptions List of all command line tokens
- */
- private boolean startDoclet(List allOptions)
- {
-
- try
- {
-
- //--- Fetch the Class object for the Doclet.
-
- Debug.log(1, "loading doclet class...");
-
- Class> docletClass;
-
- if (null != option_docletpath) {
- try {
- FileSystemClassLoader docletPathClassLoader
- = new FileSystemClassLoader(option_docletpath);
- System.err.println("trying to load class " + option_doclet + " from path " + option_docletpath);
- docletClass = docletPathClassLoader.findClass(option_doclet);
- }
- catch (Exception e) {
- docletClass = Class.forName(option_doclet);
- }
- }
- else {
- docletClass = Class.forName(option_doclet);
- }
- //Object docletInstance = docletClass.newInstance();
-
- Debug.log(1, "doclet class loaded...");
-
- Method startTempMethod = null;
- Method startMethod = null;
- Method optionLenMethod = null;
- Method validOptionsMethod = null;
-
- //--- Try to find the optionLength method in the Doclet class.
-
- try
- {
- optionLenMethod = docletClass.getMethod("optionLength", new Class[]
- { String.class });
- }
- catch (NoSuchMethodException e)
- {
- // Ignore if not found; it's OK it the Doclet class doesn't define
- // this method.
- }
-
- //--- Try to find the validOptions method in the Doclet class.
-
- try
- {
- validOptionsMethod = docletClass.getMethod("validOptions", new Class[]
- { String[][].class, DocErrorReporter.class });
- }
- catch (NoSuchMethodException e)
- {
- // Ignore if not found; it's OK it the Doclet class doesn't define
- // this method.
- }
-
- //--- Find the start method in the Doclet class; complain if not found
-
- try
- {
- startTempMethod = docletClass.getMethod("start", new Class[]
- { TemporaryStore.class });
- }
- catch (Exception e)
- {
- // ignore
- }
- startMethod = docletClass.getMethod("start", new Class[]
- { RootDoc.class });
-
- //--- Feed the custom command line tokens to the Doclet
-
- // stores all recognized options
- List options = new LinkedList();
-
- // stores packages and classes defined on the command line
- List packageAndClasses = new LinkedList();
-
- for (Iterator it = allOptions.iterator(); it.hasNext();)
- {
- String option = it.next();
-
- Debug.log(9, "parsing option '" + option + "'");
-
- if (option.startsWith("-"))
- {
-
- //--- Parse option
-
- int optlen = optionLength(option);
-
- //--- Try to get option length from Doclet class
-
- if (optlen <= 0 && optionLenMethod != null)
- {
-
- optionLenMethod.invoke(null, new Object[]
- { option });
-
- Debug.log(3, "invoking optionLen method");
-
- optlen = ((Integer) optionLenMethod.invoke(null, new Object[]
- { option })).intValue();
-
- Debug.log(3, "done");
- }
-
- if (optlen <= 0) {
-
- if (option.startsWith("-JD")) {
- // Simulate VM option -D
- String propertyValue = option.substring(3);
- int ndx = propertyValue.indexOf('=');
- if (ndx <= 0) {
- reporter.printError("Illegal format in option " + option + ": use -JDproperty=value");
- return false;
- }
- else {
- String property = propertyValue.substring(0, ndx);
- String value = propertyValue.substring(ndx + 1);
- System.setProperty(property, value);
- }
- }
- else if (option.startsWith("-J")) {
- //--- Warn if VM option is encountered
- reporter.printWarning("Ignored option " + option + ". Pass this option to the VM if required.");
- }
- else {
- //--- Complain if not found
-
- reporter.printError("Unknown option " + option);
- reporter.printNotice(STRING_TRY_GJDOC_HELP);
- return false;
- }
- }
- else
- {
-
- //--- Read option values
-
- String[] optionAndValues = new String[optlen];
- optionAndValues[0] = option;
- for (int i = 1; i < optlen; ++i)
- {
- if (!it.hasNext())
- {
- reporter.printError("Missing value for option " + option);
- return false;
- }
- else
- {
- optionAndValues[i] = (String) it.next();
- }
- }
-
- //--- Store option for processing later
-
- options.add(optionAndValues);
- }
- }
- else if (option.length() > 0)
- {
-
- //--- Add to list of packages/classes if not option or option
- // value
-
- packageAndClasses.add(option);
- }
- }
-
- Debug.log(9, "options parsed...");
-
- //--- For each package specified with the -subpackages option on
- // the command line, recursively find all valid java files
- // beneath it.
-
- //--- For each class or package specified on the command line,
- // check that it exists and find out whether it is a class
- // or a package
-
- for (Iterator it = option_subpackages.iterator(); it.hasNext();)
- {
- String subpackage = it.next();
- Set foundPackages = new LinkedHashSet();
-
- for (Iterator pit = option_sourcepath.iterator(); pit.hasNext(); ) {
- File sourceDir = pit.next();
- File packageDir = new File(sourceDir, subpackage.replace('.', File.separatorChar));
- findPackages(subpackage, packageDir, foundPackages);
- }
-
- addFoundPackages(subpackage, foundPackages);
- }
-
- if (option_all) {
- Set foundPackages = new LinkedHashSet();
- for (Iterator pit = option_sourcepath.iterator(); pit.hasNext(); ) {
- File sourceDir = pit.next();
- findPackages("", sourceDir, foundPackages);
- }
- addFoundPackages(null, foundPackages);
- for (Iterator packageIt = foundPackages.iterator(); packageIt.hasNext(); ) {
- String packageName = packageIt.next();
- if (null == packageName) {
- packageName = "";
- }
- rootDoc.addSpecifiedPackageName(packageName);
- }
- }
-
- for (Iterator it = packageAndClasses.iterator(); it.hasNext();)
- {
-
- String classOrPackage = it.next();
-
- boolean foundSourceFile = false;
-
- if (classOrPackage.endsWith(".java")) {
- for (Iterator pit = option_sourcepath.iterator(); pit.hasNext() && !foundSourceFile; ) {
- File sourceDir = pit.next();
- File sourceFile = new File(sourceDir, classOrPackage);
- if (sourceFile.exists() && !sourceFile.isDirectory()) {
- rootDoc.addSpecifiedSourceFile(sourceFile);
- foundSourceFile = true;
- break;
- }
- }
- if (!foundSourceFile) {
- File sourceFile = new File(classOrPackage);
- if (sourceFile.exists() && !sourceFile.isDirectory()) {
- rootDoc.addSpecifiedSourceFile(sourceFile);
- foundSourceFile = true;
- }
- }
- }
-
- if (!foundSourceFile) {
- //--- Check for illegal name
-
- if (classOrPackage.startsWith(".")
- || classOrPackage.endsWith(".")
- || classOrPackage.indexOf("..") > 0
- || !checkCharSet(classOrPackage,
- "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890_."))
- {
- throw new ParseException("Illegal class or package name '"
- + classOrPackage + "'");
- }
-
- //--- Assemble absolute path to package
-
- String classOrPackageRelPath = classOrPackage.replace('.',
- File.separatorChar);
-
- //--- Create one file object each for a possible package directory
- // and a possible class file, and find out if they exist.
-
- List packageDirs = rootDoc.findSourceFiles(classOrPackageRelPath);
- List sourceFiles = rootDoc.findSourceFiles(classOrPackageRelPath + ".java");
-
- boolean packageDirExists = !packageDirs.isEmpty();
- boolean sourceFileExists = !sourceFiles.isEmpty();
-
- //--- Complain if neither exists: not found
-
- if (!packageDirExists && !sourceFileExists)
- {
- reporter.printError("Class or package " + classOrPackage
- + " not found.");
- return false;
- }
-
- //--- Complain if both exist: ambigious
-
- else
- if (packageDirExists && sourceFileExists)
- {
- reporter.printError("Ambigious class/package name "
- + classOrPackage + ".");
- return false;
- }
-
- //--- Otherwise, if the package directory exists, it is a package
-
- else
- if (packageDirExists) {
- Iterator packageDirIt = packageDirs.iterator();
- boolean packageDirFound = false;
- while (packageDirIt.hasNext()) {
- File packageDir = packageDirIt.next();
- if (packageDir.isDirectory()) {
- rootDoc.addSpecifiedPackageName(classOrPackage);
- packageDirFound = true;
- break;
- }
- }
- if (!packageDirFound) {
- reporter.printError("No suitable file or directory found for" + classOrPackage);
- return false;
- }
- }
-
- //--- Otherwise, emit error message
-
- else {
- reporter.printError("No sources files found for package " + classOrPackage);
- }
- }
- }
-
- //--- Complain if no packages or classes specified
-
- if (option_help) {
- usage();
- return true;
- }
-
- //--- Validate custom options passed on command line
- // by asking the Doclet if they are OK.
-
- String[][] customOptionArr = (String[][]) options
- .toArray(new String[0][0]);
- if (validOptionsMethod != null
- && !((Boolean) validOptionsMethod.invoke(null, new Object[]
- { customOptionArr, reporter })).booleanValue())
- {
- // Not ok: shutdown system.
- reporter.printNotice(STRING_TRY_GJDOC_HELP);
- return false;
- }
-
- if (!rootDoc.hasSpecifiedPackagesOrClasses()) {
- reporter.printError("No packages or classes specified.");
- reporter.printNotice(STRING_TRY_GJDOC_HELP);
- return false;
- }
-
- rootDoc.setOptions(customOptionArr);
-
- rootDoc.build();
-
- //--- Bail out if no classes found
-
- if (0 == rootDoc.classes().length
- && 0 == rootDoc.specifiedPackages().length
- && 0 == rootDoc.specifiedClasses().length)
- {
- reporter.printError("No packages or classes found(!).");
- return false;
- }
-
- //--- Our work is done, tidy up memory
-
- System.gc();
- System.gc();
-
- //--- Set flag indicating Phase II of documentation generation
-
- docletRunning = true;
-
- //--- Invoke the start method on the Doclet: produce output
-
- reporter.printNotice("Running doclet...");
-
- TemporaryStore tstore = new TemporaryStore(Main.rootDoc);
-
- Thread.currentThread().setContextClassLoader(docletClass.getClassLoader());
-
- if (null != startTempMethod)
- {
- startTempMethod.invoke(null, new Object[]
- { tstore });
- }
- else
- {
- startMethod.invoke(null, new Object[]
- { tstore.getAndClear() });
- }
-
- //--- Let the user know how many warnings/errors occured
-
- if (reporter.getWarningCount() > 0)
- {
- reporter.printNotice(reporter.getWarningCount() + " warnings");
- }
-
- if (reporter.getErrorCount() > 0)
- {
- reporter.printNotice(reporter.getErrorCount() + " errors");
- }
-
- System.gc();
-
- //--- Done.
- return true;
- }
- catch (Exception e)
- {
- e.printStackTrace();
- return false;
- }
- }
-
- private void addFoundPackages(String subpackage, Set foundPackages)
- {
- if (foundPackages.isEmpty()) {
- reporter.printWarning("No classes found under subpackage " + subpackage);
- }
- else {
- boolean onePackageAdded = false;
- for (Iterator rit = foundPackages.iterator(); rit.hasNext();) {
- String foundPackage = rit.next();
- boolean excludeThisPackage = false;
-
- for (Iterator eit = option_exclude.iterator(); eit.hasNext();) {
- String excludePackage = eit.next();
- if (foundPackage.equals(excludePackage) ||
- foundPackage.startsWith(excludePackage + ":")) {
- excludeThisPackage = true;
- break;
- }
- }
-
- if (!excludeThisPackage) {
- rootDoc.addSpecifiedPackageName(foundPackage);
- onePackageAdded = true;
- }
- }
- if (!onePackageAdded) {
- if (null != subpackage) {
- reporter.printWarning("No non-excluded classes found under subpackage " + subpackage);
- }
- else {
- reporter.printWarning("No non-excluded classes found.");
- }
- }
- }
- }
-
- /**
- * Verify that the given file is a valid Java source file and that
- * it specifies the given package.
- */
- private boolean isValidJavaFile(File file,
- String expectedPackage)
- {
- try {
- InputStream in = new BufferedInputStream(new FileInputStream(file));
-
- int ch, prevChar = 0;
-
- final int STATE_DEFAULT = 0;
- final int STATE_COMMENT = 1;
- final int STATE_LINE_COMMENT = 2;
-
- int state = STATE_DEFAULT;
-
- StringBuffer word = new StringBuffer();
- int wordIndex = 0;
-
- while ((ch = in.read()) >= 0) {
- String completeWord = null;
-
- switch (state) {
- case STATE_COMMENT:
- if (prevChar == '*' && ch == '/') {
- state = STATE_DEFAULT;
- }
- break;
-
- case STATE_LINE_COMMENT:
- if (ch == '\n') {
- state = STATE_DEFAULT;
- }
- break;
-
- case STATE_DEFAULT:
- if (prevChar == '/' && ch == '*') {
- word.deleteCharAt(word.length() - 1);
- if (word.length() > 0) {
- completeWord = word.toString();
- word.setLength(0);
- }
- state = STATE_COMMENT;
- }
- else if (prevChar == '/' && ch == '/') {
- word.deleteCharAt(word.length() - 1);
- if (word.length() > 0) {
- completeWord = word.toString();
- word.setLength(0);
- }
- state = STATE_LINE_COMMENT;
- }
- else if (" \t\r\n".indexOf(ch) >= 0) {
- if (word.length() > 0) {
- completeWord = word.toString();
- word.setLength(0);
- }
- }
- else if (1 == wordIndex && ';' == ch) {
- if (word.length() > 0) {
- completeWord = word.toString();
- word.setLength(0);
- }
- else {
- // empty package name in source file: "package ;" -> invalid source file
- in.close();
- return false;
- }
- }
- else {
- word.append((char)ch);
- }
- break;
- }
-
- if (null != completeWord) {
- if (0 == wordIndex && !"package".equals(completeWord)) {
- in.close();
- return "".equals(expectedPackage);
- }
- else if (1 == wordIndex) {
- in.close();
- return expectedPackage.equals(completeWord);
- }
- ++ wordIndex;
- }
-
- prevChar = ch;
- }
-
- // no package or class found before end-of-file -> invalid source file
-
- in.close();
- return false;
- }
- catch (IOException e) {
- reporter.printWarning("Could not examine file " + file + ": " + e);
- return false;
- }
- }
-
- /**
- * Recursively try to locate valid Java packages under the given
- * package specified by its name and its directory. Add the names
- * of all valid packages to the result list.
- */
- private void findPackages(String subpackage,
- File packageDir,
- Set result)
- {
- File[] files = packageDir.listFiles();
- if (null != files) {
- for (int i=0; i 0) {
- newSubpackage = subpackage + "." + file.getName();
- }
- else {
- newSubpackage = file.getName();
- }
- findPackages(newSubpackage, file, result);
- }
- }
- }
- }
-
- /**
- *
- */
- private static boolean validOptions(String options[][],
- DocErrorReporter reporter)
- {
-
- boolean foundDocletOption = false;
- for (int i = 0; i < options.length; i++)
- {
- String[] opt = options[i];
- if (opt[0].equalsIgnoreCase("-doclet"))
- {
- if (foundDocletOption)
- {
- reporter.printError("Only one -doclet option allowed.");
- return false;
- }
- else
- {
- foundDocletOption = true;
- }
- }
- }
-
- return true;
- }
-
- /**
- * Main entry point. This is the method called when gjdoc is invoked from the
- * command line.
- *
- * @param args
- * command line arguments
- */
- public static void main(String[] args)
- {
-
- try
- {
- //--- Remember current time for profiling purposes
-
- Timer.setStartTime();
-
- //--- Handle control to the Singleton instance of this class
-
- int result = instance.start(args);
-
- if (result < 0) {
- // fatal error
- System.exit(5);
- }
- else if (result > 0) {
- // errors encountered
- System.exit(1);
- }
- else {
- // success
- System.exit(0);
- }
- }
- catch (Exception e)
- {
- //--- unexpected error
- e.printStackTrace();
- System.exit(1);
- }
- }
-
- /**
- * Parses command line arguments and subsequentially handles control to the
- * startDoclet() method
- *
- * @param args The command line parameters.
- */
- public static int execute(String[] args)
- {
- try
- {
- int result = instance.start(args);
- if (result < 0) {
- // fatal error
- return 5;
- }
- else if (result > 0) {
- // errors encountered
- return 1;
- }
- else {
- // success
- return 0;
- }
- }
- catch (Exception e)
- {
- // unexpected error
- return 1;
- }
- }
-
- /**
- * @param programName Name of the program (for error messages). *disregarded*
- * @param args The command line parameters.
- * @returns The return code.
- */
- public static int execute(String programName,
- String[] args)
- {
- return execute(args);
- }
-
- /**
- * @param programName Name of the program (for error messages).
- * @param defaultDocletClassName Fully qualified class name.
- * @param args The command line parameters.
- * @returns The return code.
- *//*
- public static int execute(String programName,
- String defaultDocletClassName,
- String[] args)
- {
- // not yet implemented
- }*/
-
- /**
- * @param programName Name of the program (for error messages).
- * @param defaultDocletClassName Fully qualified class name.
- * @param args The command line parameters.
- * @returns The return code.
- *//*
- public static int execute(String programName,
- String defaultDocletClassName,
- String[] args)
- {
- // not yet implemented
- }*/
-
- /**
- * @param programName Name of the program (for error messages).
- * @param errWriter PrintWriter to receive error messages.
- * @param warnWriter PrintWriter to receive error messages.
- * @param noticeWriter PrintWriter to receive error messages.
- * @param defaultDocletClassName Fully qualified class name.
- * @param args The command line parameters.
- * @returns The return code.
- *//*
- public static int execute(String programName,
- PrintWriter errWriter,
- PrintWriter warnWriter,
- PrintWriter noticeWriter,
- String defaultDocletClassName,
- String[] args)
- {
- // not yet implemented
- }*/
-
- /**
- * Parses command line arguments and subsequentially handles control to the
- * startDoclet() method
- *
- * @param args
- * Command line arguments, as passed to the main() method
- * @return {@code -1} in case of a fatal error (invalid arguments),
- * or the number of errors encountered.
- * @exception ParseException
- * FIXME
- * @exception IOException
- * if an IO problem occur
- */
- public int start(String[] args) throws ParseException, IOException
- {
-
- //--- Collect unparsed arguments in array and resolve references
- // to external argument files.
-
- List arguments = new ArrayList(args.length);
-
- for (int i = 0; i < args.length; ++i)
- {
- if (!args[i].startsWith("@"))
- {
- arguments.add(args[i]);
- }
- else
- {
- FileReader reader = new FileReader(args[i].substring(1));
- StreamTokenizer st = new StreamTokenizer(reader);
- st.resetSyntax();
- st.wordChars('\u0000', '\uffff');
- st.quoteChar('\"');
- st.quoteChar('\'');
- st.whitespaceChars(' ', ' ');
- st.whitespaceChars('\t', '\t');
- st.whitespaceChars('\r', '\r');
- st.whitespaceChars('\n', '\n');
- while (st.nextToken() != StreamTokenizer.TT_EOF)
- {
- arguments.add(st.sval);
- }
- }
- }
-
- //--- Initialize Map for option parsing
-
- initOptions();
-
- //--- This will hold all options recognized by gjdoc itself
- // and their associated arguments.
- // Contains objects of type String[], where each entry
- // specifies an option along with its aguments.
-
- List options = new LinkedList();
-
- //--- This will hold all command line tokens not recognized
- // to be part of a standard option.
- // These options are intended to be processed by the doclet
- // Contains objects of type String, where each entry is
- // one unrecognized token.
-
- List customOptions = new LinkedList();
-
- rootDoc = new RootDocImpl();
- reporter = rootDoc.getReporter();
-
- //--- Iterate over all options given on the command line
-
- for (Iterator it = arguments.iterator(); it.hasNext();)
- {
-
- String arg = it.next();
-
- //--- Check if gjdoc recognizes this option as a standard option
- // and remember the options' argument count
-
- int optlen = optionLength(arg);
-
- //--- Argument count == 0 indicates that the option is not recognized.
- // Add it to the list of custom option tokens
-
- //--- Otherwise the option is recognized as a standard option.
- // if all required arguments are supplied. Create a new String
- // array for the option and its arguments, and store it
- // in the options array.
-
- if (optlen > 0)
- {
- String[] option = new String[optlen];
- option[0] = arg;
- boolean optargs_ok = true;
- for (int j = 1; j < optlen && optargs_ok; ++j)
- {
- if (it.hasNext())
- {
- option[j] = (String) it.next();
- if (option[j].startsWith("-"))
- {
- optargs_ok = false;
- }
- }
- else
- {
- optargs_ok = false;
- }
- }
- if (optargs_ok)
- options.add(option);
- else
- {
- // If the option requires more arguments than given on the
- // command line, issue a fatal error
-
- reporter.printFatal("Missing value for option " + arg + ".");
- }
- }
- }
-
- //--- Create an array of String arrays from the dynamic array built above
-
- String[][] optionArr = options.toArray(new String[options.size()][0]);
-
- //--- Validate all options and issue warnings/errors
-
- if (validOptions(optionArr, rootDoc))
- {
-
- //--- We got valid options; parse them and store the parsed values
- // in 'option_*' fields.
-
- readOptions(optionArr);
-
- //--- Show version and exit if requested by user
-
- if (option_showVersion) {
- System.out.println("gjdoc " + getGjdocVersion());
- System.exit(0);
- }
-
- if (option_bootclasspath_specified) {
- reporter.printWarning("-bootclasspath ignored: not supported by"
- + " gjdoc wrapper script, or no wrapper script in use.");
- }
-
- // If we have an empty source path list, add the current directory ('.')
-
- if (option_sourcepath.size() == 0)
- option_sourcepath.add(new File("."));
-
- //--- We have all information we need to start the doclet at this time
-
- if (null != option_encoding) {
- rootDoc.setSourceEncoding(option_encoding);
- }
- else {
- // be quiet about this for now:
- // reporter.printNotice("No encoding specified, using platform default: " + System.getProperty("file.encoding"));
- rootDoc.setSourceEncoding(System.getProperty("file.encoding"));
- }
- rootDoc.setSourcePath(option_sourcepath);
-
- //addJavaLangClasses();
-
- if (!startDoclet(arguments)) {
- return -1;
- }
- }
-
- return reporter.getErrorCount();
- }
-
- /*
- private void addJavaLangClasses()
- throws IOException
- {
- String resourceName = "/java.lang-classes-" + option_source + ".txt";
- InputStream in = getClass().getResourceAsStream(resourceName);
- BufferedReader reader = new BufferedReader(new InputStreamReader(in));
- String line;
- while ((line = reader.readLine()) != null) {
-
- String className = line.trim();
- if (className.length() > 0) {
- ClassDocImpl classDoc =
- new ClassDocImpl(null, new PackageDocImpl("java.lang"),
- ProgramElementDocImpl.ACCESS_PUBLIC,
- false, false, null);
- classDoc.setClass(className);
- rootDoc.addClassDoc(classDoc);
- }
- }
- }
- */
-
- /**
- * Helper class for parsing command line arguments. An instance of this class
- * represents a particular option accepted by gjdoc (e.g. '-sourcepath') along
- * with the number of expected arguments and behavior to parse the arguments.
- */
- private abstract class OptionProcessor
- {
-
- /**
- * Number of arguments expected by this option.
- */
- private int argCount;
-
- /**
- * Initializes this instance.
- *
- * @param argCount
- * number of arguments
- */
- public OptionProcessor(int argCount)
- {
- this.argCount = argCount;
- }
-
- /**
- * Overridden by derived classes with behavior to parse the arguments
- * specified with this option.
- *
- * @param args
- * command line arguments
- */
- abstract void process(String[] args);
- }
-
- /**
- * Maps option tags (e.g. '-sourcepath') to OptionProcessor objects.
- * Initialized only once by method initOptions(). FIXME: Rename to
- * 'optionProcessors'.
- */
- private static Map options = null;
-
- /**
- * Initialize all OptionProcessor objects needed to scan/parse command line
- * options. This cannot be done in a static initializer block because
- * OptionProcessors need access to the Singleton instance of the Main class.
- */
- private void initOptions()
- {
-
- options = new HashMap();
-
- //--- Put one OptionProcessor object into the map
- // for each option recognized.
-
- options.put("-overview", new OptionProcessor(2)
- {
-
- void process(String[] args)
- {
- System.err.println("WARNING: Unsupported option -overview ignored");
- }
- });
- options.put("-public", new OptionProcessor(1)
- {
-
- void process(String[] args)
- {
- option_coverage = COVERAGE_PUBLIC;
- }
- });
- options.put("-protected", new OptionProcessor(1)
- {
-
- void process(String[] args)
- {
- option_coverage = COVERAGE_PROTECTED;
- }
- });
- options.put("-package", new OptionProcessor(1)
- {
-
- void process(String[] args)
- {
- option_coverage = COVERAGE_PACKAGE;
- }
- });
- options.put("-private", new OptionProcessor(1)
- {
-
- void process(String[] args)
- {
- option_coverage = COVERAGE_PRIVATE;
- }
- });
- OptionProcessor helpProcessor = new OptionProcessor(1)
- {
-
- void process(String[] args)
- {
- option_help = true;
- }
- };
-
- options.put("-help", helpProcessor);
- options.put("--help", helpProcessor);
- options.put("-doclet", new OptionProcessor(2)
- {
-
- void process(String[] args)
- {
- option_doclet = args[0];
- }
- });
- options.put("-docletpath", new OptionProcessor(2)
- {
-
- void process(String[] args)
- {
- option_docletpath = args[0];
- }
- });
- options.put("-nowarn", new OptionProcessor(1)
- {
-
- void process(String[] args)
- {
- System.err.println("WARNING: Unsupported option -nowarn ignored");
- }
- });
- options.put("-source", new OptionProcessor(2)
- {
-
- void process(String[] args)
- {
- option_source = args[0];
- if ("1.5".equals(option_source)
- || "1.6".equals(option_source)
- || "1.7".equals(option_source)) {
- System.err.println("WARNING: support for option -source " + option_source + " is experimental");
- }
- else if (!"1.2".equals(option_source)
- && !"1.3".equals(option_source)
- && !"1.4".equals(option_source)) {
-
- throw new RuntimeException("Only the following values are currently"
- + " supported for option -source: 1.2, 1.3, 1.4; experimental: 1.5, 1.6, 1.7.");
- }
- }
- });
- OptionProcessor sourcePathProcessor = new OptionProcessor(2) {
- void process(String[] args)
- {
- Debug.log(1, "-sourcepath is '" + args[0] + "'");
- for (StringTokenizer st = new StringTokenizer(args[0],
- File.pathSeparator); st.hasMoreTokens();)
- {
- String path = st.nextToken();
- File file = new File(path);
- if (!(file.exists()))
- {
- throw new RuntimeException("The source path " + path
- + " does not exist.");
- }
- option_sourcepath.add(file);
- }
- }
- };
- options.put("-s", sourcePathProcessor);
- options.put("-sourcepath", sourcePathProcessor);
- options.put("-subpackages", new OptionProcessor(2)
- {
- void process(String[] args)
- {
- StringTokenizer st = new StringTokenizer(args[0], ":");
- while (st.hasMoreTokens()) {
- String packageName = st.nextToken();
-
- if (packageName.startsWith(".")
- || packageName.endsWith(".")
- || packageName.indexOf("..") > 0
- || !checkCharSet(packageName,
- "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890_.")) {
- throw new RuntimeException("Illegal package name '"
- + packageName + "'");
- }
- option_subpackages.add(packageName);
- }
- }
- });
- options.put("-exclude", new OptionProcessor(2)
- {
- void process(String[] args)
- {
- StringTokenizer st = new StringTokenizer(args[0], ":");
- while (st.hasMoreTokens()) {
- String packageName = st.nextToken();
-
- if (packageName.startsWith(".")
- || packageName.endsWith(".")
- || packageName.indexOf("..") > 0
- || !checkCharSet(packageName,
- "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890_.")) {
- throw new RuntimeException("Illegal package name '"
- + packageName + "'");
- }
- option_exclude.add(packageName);
- }
- }
- });
- // TODO include other options here
- options.put("-verbose", new OptionProcessor(1)
- {
-
- void process(String[] args)
- {
- System.err.println("WARNING: Unsupported option -verbose ignored");
- }
- });
- options.put("-quiet", new OptionProcessor(1)
- {
-
- void process(String[] args)
- {
- reporter.setQuiet(true);
- }
- });
- options.put("-locale", new OptionProcessor(2)
- {
-
- void process(String[] args)
- {
- String localeName = args[0];
- String language = null;
- String country = null;
- String variant = null;
- StringTokenizer st = new StringTokenizer(localeName, "_");
- if (st.hasMoreTokens()) {
- language = st.nextToken();
- }
- if (st.hasMoreTokens()) {
- country = st.nextToken();
- }
- if (st.hasMoreTokens()) {
- variant = st.nextToken();
- }
- if (variant != null) {
- option_locale = new Locale(language, country, variant);
- }
- else if (country != null) {
- option_locale = new Locale(language, country);
- }
- else if (language != null) {
- option_locale = new Locale(language);
- }
- else {
- throw new RuntimeException("Illegal locale specification '"
- + localeName + "'");
- }
- }
- });
- options.put("-encoding", new OptionProcessor(2)
- {
-
- void process(String[] args)
- {
- option_encoding = args[0];
- }
- });
- options.put("-breakiterator", new OptionProcessor(1)
- {
- void process(String[] args)
- {
- option_breakiterator = true;
- }
- });
- options.put("-licensetext", new OptionProcessor(1)
- {
- void process(String[] args)
- {
- option_licensetext = true;
- }
- });
- options.put("-overview", new OptionProcessor(2)
- {
- void process(String[] args)
- {
- try {
- getRootDoc().setRawCommentText(RootDocImpl.readHtmlBody(new File(args[0])));
- }
- catch (IOException e) {
- throw new RuntimeException("Cannot read file specified in option -overview: " + e.getMessage());
- }
- }
- });
- options.put("-classpath", new OptionProcessor(2)
- {
- void process(String[] args)
- {
- reporter.printWarning("-classpath option could not be passed to the VM. Faking it with ");
- reporter.printWarning(" System.setProperty(\"java.class.path\", \"" + args[0] + "\");");
- System.setProperty("java.class.path", args[0]);
- }
- });
- options.put("--version", new OptionProcessor(1)
- {
- void process(String[] args)
- {
- option_showVersion = true;
- }
- });
- options.put("-bootclasspath", new OptionProcessor(1)
- {
- void process(String[] args)
- {
- option_bootclasspath_specified = true;
- }
- });
- options.put("-all", new OptionProcessor(1)
- {
- void process(String[] args)
- {
- option_all = true;
- }
- });
- options.put("-reflection", new OptionProcessor(1)
- {
- void process(String[] args)
- {
- option_reflection = true;
- }
- });
- }
-
- /**
- * Determine how many arguments the given option requires.
- *
- * @param option
- * The name of the option without leading dash.
- */
- private static int optionLength(String option)
- {
-
- OptionProcessor op = (OptionProcessor) options.get(option.toLowerCase());
- if (op != null)
- return op.argCount;
- else
- return 0;
- }
-
- /**
- * Process all given options. Assumes that the options have been validated
- * before.
- *
- * @param optionArr
- * Each element is a series of Strings where [0] is the name of the
- * option and [1..n] are the arguments to the option.
- */
- private void readOptions(String[][] optionArr)
- {
-
- //--- For each option, find the appropriate OptionProcessor
- // and call its process() method
-
- for (int i = 0; i < optionArr.length; ++i)
- {
- String[] opt = optionArr[i];
- String[] args = new String[opt.length - 1];
- System.arraycopy(opt, 1, args, 0, opt.length - 1);
- OptionProcessor op = (OptionProcessor) options.get(opt[0].toLowerCase());
- op.process(args);
- }
- }
-
- /**
- * Print command line usage.
- */
- private static void usage()
- {
- System.out
- .print("\n"
- + "USAGE: gjdoc [options] [packagenames] "
- + "[sourcefiles] [@files]\n\n"
- + " --version Show version information and exit\n"
- + " -all Process all source files found in the source path\n"
- + " -overview Read overview documentation from HTML file\n"
- + " -public Include only public classes and members\n"
- + " -protected Include protected and public classes and members\n"
- + " This is the default\n"
- + " -package Include package/protected/public classes and members\n"
- + " -private Include all classes and members\n"
- + " -help, --help Show this information\n"
- + " -doclet Doclet class to use for generating output\n"
- + " -docletpath Specifies the search path for the doclet and\n"
- + " dependencies\n"
- + " -source Provide source compatibility with specified\n"
- + " release (1.4 to handle assertion)\n"
- + " -sourcepath Where to look for source files\n"
- + " -s Alias for -sourcepath\n"
- + " -subpackages List of subpackages to recursively load\n"
- + " -exclude List of packages to exclude\n"
- + " -verbose Output messages about what Gjdoc is doing [ignored]\n"
- + " -quiet Do not print non-error and non-warning messages\n"
- + " -locale Locale to be used, e.g. en_US or en_US_WIN\n"
- + " -encoding Source file encoding name\n"
- + " -breakiterator Compute first sentence with BreakIterator\n"
- + " -classpath Set the path used for loading auxilliary classes\n"
- + "\n"
- + "Standard doclet options:\n"
- + " -d Set target directory\n"
- + " -use Includes the 'Use' page for each documented class\n"
- + " and package\n"
- + " -version Includes the '@version' tag\n"
- + " -author Includes the '@author' tag\n"
- + " -splitindex Splits the index file into multiple files\n"
- + " -windowtitle Browser window title\n"
- + " -doctitle Title near the top of the overview summary file\n"
- + " (HTML allowed)\n"
- + " -title Title for this set of API documentation\n"
- + " (deprecated, -doctitle should be used instead)\n"
- + " -header Text to include in the top navigation bar\n"
- + " (HTML allowed)\n"
- + " -footer Text to include in the bottom navigation bar\n"
- + " (HTML allowed)\n"
- + " -bottom Text to include at the bottom of each output file\n"
- + " (HTML allowed)\n"
- + " -link Link to external generated documentation at URL\n"
- + " -linkoffline \n"
- + " Link to external generated documentation for\n"
- + " the specified package-list\n"
- + " -linksource Creates an HTML version of each source file\n"
- + " -group \n"
- + " Separates packages on the overview page into groups\n"
- + " -nodeprecated Prevents the generation of any deprecated API\n"
- + " -nodeprecatedlist Prevents the generation of the file containing\n"
- + " the list of deprecated APIs and the link to the\n"
- + " navigation bar to that page\n"
- + " -nosince Omit the '@since' tag\n"
- + " -notree Do not generate the class/interface hierarchy page\n"
- + " -noindex Do not generate the index file\n"
- + " -nohelp Do not generate the help link\n"
- + " -nonavbar Do not generate the navbar, header and footer\n"
- + " -helpfile Path to an alternate help file\n"
- + " -stylesheetfile Path to an alternate CSS stylesheet\n"
- + " -addstylesheet Path to an additional CSS stylesheet\n"
- + " -serialwarn Complain about missing '@serial' tags [ignored]\n"
- + " -charset Specifies the HTML charset\n"
- + " -docencoding \n"
- + " Specifies the encoding of the generated HTML files\n"
- + " -tag :Xaoptcmf:\"\"\n"
- + " Enables gjdoc to interpret a custom tag\n"
- + " -taglet Adds a Taglet class to the map of taglets\n"
- + " -tagletpath Sets the CLASSPATH to load subsequent Taglets from\n"
- + " -docfilessubdirs Enables deep copy of 'doc-files' directories\n"
- + " -excludedocfilessubdir \n"
- + " Excludes 'doc-files' subdirectories with a give name\n"
- + " -noqualifier all|\n"
- + " Do never fully qualify given package names\n"
- + " -nocomment Suppress the entire comment body including the main\n"
- + " description and all tags, only generate declarations\n"
- + "\n"
- + "Gjdoc extension options:\n"
- + " -reflection Use reflection for resolving unqualified class names\n"
- + " -licensetext Include license text from source files\n"
- + " -validhtml Use valid HTML/XML names (breaks compatibility)\n"
- + " -baseurl Hardwire the given base URL into generated pages\n"
- /**
- + " -genhtml Generate HTML code instead of XML code. This is the\n"
- + " default.\n"
- + " -geninfo Generate Info code instead of XML code.\n"
- + " -xslsheet If specified, XML files will be written to a\n"
- + " temporary directory and transformed using the\n"
- + " given XSL sheet. The result of the transformation\n"
- + " is written to the output directory. Not required if\n"
- + " -genhtml or -geninfo has been specified.\n"
- + " -xmlonly Generate XML code only, do not generate HTML code.\n"
- + " -bottomnote HTML code to include at the bottom of each page.\n"
- + " -nofixhtml If not specified, heurestics will be applied to\n"
- + " fix broken HTML code in comments.\n"
- + " -nohtmlwarn Do not emit warnings when encountering broken HTML\n"
- + " code.\n"
- + " -noemailwarn Do not emit warnings when encountering strings like\n"
- + " .\n"
- + " -indentstep How many spaces to indent each tag level in\n"
- + " generated XML code.\n"
- + " -xsltdriver Specifies the XSLT driver to use for transformation.\n"
- + " By default, xsltproc is used.\n"
- + " -postprocess XmlDoclet postprocessor class to apply after XSL\n"
- + " transformation.\n"
- + " -compress Generated info pages will be Zip-compressed.\n"
- + " -workpath Specify a temporary directory to use.\n"
- + " -authormail Specify handling of mail addresses in @author tags.\n"
- + " no-replace do not replace mail addresses (default).\n"
- + " mailto-name replace by Real Name.\n"
- + " name-mailto-address replace by Real Name (abc@foo.com).\n"
- + " name-mangled-address replace by Real Name (abc AT foo DOT com).\n"
- **/
- );
- }
-
- /**
- * The root of the gjdoc tool.
- *
- * @return all the options of the gjdoc application.
- */
- public static RootDocImpl getRootDoc()
- {
- return rootDoc;
- }
-
- /**
- * Get the gjdoc singleton.
- *
- * @return the gjdoc instance.
- */
- public static Main getInstance()
- {
- return instance;
- }
-
- /**
- * Is this access level covered?
- *
- * @param accessLevel
- * the access level we want to know if it is covered.
- * @return true if the access level is covered.
- */
- public boolean includeAccessLevel(int accessLevel)
- {
- return coverageTemplates[option_coverage][accessLevel];
- }
-
- /**
- * Is the doclet running?
- *
- * @return true if it's running
- */
- public boolean isDocletRunning()
- {
- return docletRunning;
- }
-
- /**
- * Check the charset. Check that all the characters of the string 'toCheck'
- * and query if they exist in the 'charSet'. The order does not matter. The
- * number of times a character is in the variable does not matter.
- *
- * @param toCheck
- * the charset to check.
- * @param charSet
- * the reference charset
- * @return true if they match.
- */
- public static boolean checkCharSet(String toCheck, String charSet)
- {
- for (int i = 0; i < toCheck.length(); ++i)
- {
- if (charSet.indexOf(toCheck.charAt(i)) < 0)
- return false;
- }
- return true;
- }
-
- /**
- * Makes the RootDoc eligible for the GC.
- */
- public static void releaseRootDoc()
- {
- rootDoc.flush();
- }
-
- /**
- * Return whether the -breakiterator option has been specified.
- */
- public boolean isUseBreakIterator()
- {
- return this.option_breakiterator
- || !getLocale().getLanguage().equals(Locale.ENGLISH.getLanguage());
- }
-
- /**
- * Return whether boilerplate license text should be copied.
- */
- public boolean isCopyLicenseText()
- {
- return this.option_licensetext;
- }
-
- /**
- * Return the locale specified using the -locale option or the
- * default locale;
- */
- public Locale getLocale()
- {
- return this.option_locale;
- }
-
- /**
- * Return the collator to use based on the specified -locale
- * option. If no collator can be found for the given locale, a
- * warning is emitted and the default collator is used instead.
- */
- public Collator getCollator()
- {
- if (null == this.collator) {
- Locale locale = getLocale();
- this.collator = Collator.getInstance(locale);
- Locale defaultLocale = Locale.getDefault();
- if (null == this.collator
- && !defaultLocale.equals(locale)) {
- this.collator = Collator.getInstance(defaultLocale);
- if (null != this.collator) {
- reporter.printWarning("No collator found for locale "
- + locale.getDisplayName()
- + "; using collator for default locale "
- + defaultLocale.getDisplayName()
- + ".");
- }
- else {
- this.collator = Collator.getInstance();
- reporter.printWarning("No collator found for specified locale "
- + locale.getDisplayName()
- + " or default locale "
- + defaultLocale.getDisplayName()
- + ": using default collator.");
- }
- }
- if (null == this.collator) {
- this.collator = Collator.getInstance();
- reporter.printWarning("No collator found for locale "
- + locale.getDisplayName()
- + ": using default collator.");
- }
- }
- return this.collator;
- }
-
- public boolean isCacheRawComments()
- {
- return true;
- }
-
- public String getGjdocVersion()
- {
- if (null == gjdocVersion) {
- gjdocVersion = gnu.classpath.Configuration.CLASSPATH_VERSION;
- }
- return gjdocVersion;
- }
-
- public boolean isReflectionEnabled()
- {
- return this.option_reflection;
- }
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/MemberDocImpl.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/MemberDocImpl.java
deleted file mode 100644
index 87ed585..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/MemberDocImpl.java
+++ /dev/null
@@ -1,235 +0,0 @@
-/* gnu.classpath.tools.gjdoc.MemberDocImpl
- Copyright (C) 2001, 2012 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 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 gnu.classpath.tools.gjdoc;
-
-import java.util.*;
-import com.sun.javadoc.*;
-
-public abstract class MemberDocImpl extends ProgramElementDocImpl implements MemberDoc {
-
- protected String typeName;
- protected Type type;
-
- public MemberDocImpl(ClassDoc containingClass,
- PackageDoc containingPackage,
- SourcePosition position) {
-
- super(containingClass,
- containingPackage,
- position);
- }
-
- public String qualifiedName() {
- return containingClass().qualifiedName()+"."+name();
- }
-
- public boolean isSynthetic() {
- return false;
- }
-
- int parseModifiers(char[] source, int startIndex, int endIndex) {
-
- Debug.log(9,"parseModifiers '"+new String(source,startIndex,endIndex-startIndex)+"'");
-
- final int STATE_NORMAL = 1;
- final int STATE_STARC = 2;
- final int STATE_SLASHC = 3;
-
- int state = STATE_NORMAL;
-
- StringBuffer word = new StringBuffer();
- StringBuffer typeNameBuf = new StringBuffer();
- int lastWordStart = startIndex;
- int firstChar = 0;
- int lastChar = 0;
- for (; startIndex=0
- || (startIndex > 0 && source[startIndex-1] == ']' && source[startIndex] != '[')) {
- if (word.length()>0 && lastChar != '.') {
- if (processModifier(word.toString())) {
- }
- else if (typeNameBuf.length()==0 && !isConstructor()) {
- typeNameBuf.setLength(0);
- typeNameBuf.append(word);
- }
- else if ((firstChar=='[' || firstChar==']') && !isConstructor()) {
- typeNameBuf.append(word);
- }
- else {
- typeName = typeNameBuf.toString();
- return lastWordStart;
- }
- word.setLength(0);
- lastWordStart=startIndex;
- }
- }
- else {
- if (lastWordStart<0) lastWordStart=startIndex;
- lastChar = source[startIndex];
- if (0 == word.length()) {
- firstChar = lastChar;
- }
- word.append((char)lastChar);
- }
- }
-
- typeName = typeNameBuf.toString();
- return startIndex;
- }
-
- public Type type() {
- //public Type type() throws ParseException {
- Debug.log(9,"type() called on "+containingClass()+"."+this);
- if (type==null) {
- try {
- type=((ClassDocImpl)containingClass()).typeForString(typeName);
- } catch (ParseException e) {
- System.err.println("FIXME: add try-catch to force compilation");
- e.printStackTrace();
- }
- }
- return type;
- }
-
-
- protected void setName(String name) {
- this.name=name;
- }
- private String name;
-
-
- public String name() {
- return name;
- }
-
- public void setTypeName(String typeName) {
- this.typeName=typeName;
- this.type=null;
- }
-
- public String getTypeName() {
- return typeName;
- }
-
- // return true if this Doc is include in the active set.
- public boolean isIncluded() {
- return Main.getInstance().includeAccessLevel(accessLevel);
- }
-
- public int compareTo(Doc d) {
- if (d instanceof MemberDocImpl) {
- int rc=name().compareTo(((MemberDocImpl)d).name());
- if (rc==0)
- rc=containingClass().qualifiedName().compareTo(((MemberDocImpl)d).containingClass().qualifiedName());
- return rc;
- }
- else {
- return super.compareTo(d);
- }
- }
-
- void resolve() {
-
- if (type==null && typeName!=null) {
- Debug.log(1, "MemberDocImpl.resolve(), looking up type named "+typeName);
- try {
- type=((ClassDocImpl)containingClass()).typeForString(typeName);
- } catch (ParseException e) {
- //System.err.println("FIXME: add try-catch to force compilation");
- //e.printStackTrace();
- Debug.log(1, "INTERNAL WARNING: Couldn't find type for name '"+typeName+"'");
- }
- }
-
- if (type instanceof ClassDocProxy) {
- String className=type.qualifiedTypeName();
- ClassDoc realClassDoc=((ClassDocImpl)containingClass()).findClass(className, type.dimension());
- if (realClassDoc!=null) {
- type=realClassDoc;
- }
- else {
- //throw new Error("Class not found: "+className);
- /*** This is not an error, the class was not included
- * on the command line. Perhaps emit a notice here.
- *
-
- Main.getRootDoc().printError("Class not found '"
- + className
- + "' in class '"
- + containingClass().qualifiedName()
- + "' member '"
- + name()
- + "'");
- */
- }
- }
- }
-
- public void resolveComments()
- {
- super.resolveComments();
-
- if (tagMap.isEmpty()) {
- TagContainer inheritedTagMap = ClassDocImpl.findInheritedDoc(containingClass(),
- this,
- null);
- if (null != inheritedTagMap) {
- this.tagMap = inheritedTagMap.getTagMap();
- }
- }
- }
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/MethodDocImpl.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/MethodDocImpl.java
deleted file mode 100644
index 78748c8..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/MethodDocImpl.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/* gnu.classpath.tools.gjdoc.MethodDocImpl
- Copyright (C) 2001 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a 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 gnu.classpath.tools.gjdoc;
-
-import java.util.*;
-import com.sun.javadoc.*;
-
-public class MethodDocImpl extends ExecutableMemberDocImpl implements MethodDoc {
-
- public MethodDocImpl(ClassDoc containingClass,
- PackageDoc containingPackage,
- SourcePosition position) {
-
- super(containingClass,
- containingPackage,
- position);
- }
-
- // Is this Doc item a class.
- public boolean isMethod() {
- return true;
- }
-
- public Type returnType() {
- return super.type();
- }
-
- public String toString() { return name()+((signature()==null)?"()":signature()); }
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/PackageDocImpl.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/PackageDocImpl.java
deleted file mode 100644
index 770a627..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/PackageDocImpl.java
+++ /dev/null
@@ -1,223 +0,0 @@
-/* gnu.classpath.tools.gjdoc.PackageDocImpl
- Copyright (C) 2001, 2012 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 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 gnu.classpath.tools.gjdoc;
-
-import com.sun.javadoc.*;
-import java.util.*;
-import java.io.File;
-
-class PackageDocImpl extends DocImpl implements GjdocPackageDoc {
-
- private String packageName;
- private File packageDirectory;
-
- private Set allClassesSet = new TreeSet();
- private List ordinaryClassesList = new ArrayList();
- private List exceptionsList = new ArrayList();
- private List interfacesList = new ArrayList();
- private List errorsList = new ArrayList();
-
- private ClassDoc[] allClasses;
- private ClassDoc[] ordinaryClasses;
- private ClassDoc[] exceptions;
- private ClassDoc[] interfaces;
- private ClassDoc[] errors;
-
- PackageDocImpl(String packageName) {
- super(null);
- this.packageName=packageName;
- }
-
- public void addClass(ClassDoc classDoc) {
- if (Main.getInstance().includeAccessLevel(((ClassDocImpl)classDoc).accessLevel)) {
- allClassesSet.add(classDoc);
- }
- }
-
- public void resolve() {
- for (Iterator it = allClassesSet.iterator(); it.hasNext(); ) {
- ClassDocImpl classDoc = (ClassDocImpl) it.next();
- try {
- classDoc.resolve();
- } catch (ParseException e) {
- System.err.println("FIXME: add try-catch to force compilation"
- + e);
- }
-
- if (classDoc.isInterface()) {
- interfacesList.add(classDoc);
- }
- else if (classDoc.isException()) {
- exceptionsList.add(classDoc);
- }
- else if (classDoc.isError()) {
- errorsList.add(classDoc);
- }
- else {
- ordinaryClassesList.add(classDoc);
- }
- }
- }
-
- public void resolveComments() {
- if (rawDocumentation!=null) {
- this.tagMap=parseCommentTags(rawDocumentation.toCharArray(),
- 0,
- rawDocumentation.length(),
- null,
- null,
- null,
- null);
- }
-
- resolveTags();
- }
-
- public String name() {
- return packageName;
- }
-
- public ClassDoc[] allClasses()
- {
- if (null == this.allClasses) {
- this.allClasses = toClassDocArray(allClassesSet);
- }
- return this.allClasses;
- }
-
- public ClassDoc[] ordinaryClasses()
- {
- if (null == this.ordinaryClasses) {
- this.ordinaryClasses = toClassDocArray(ordinaryClassesList);
- }
- return this.ordinaryClasses;
- }
-
-
- public ClassDoc[] exceptions()
- {
- if (null == this.exceptions) {
- this.exceptions = toClassDocArray(exceptionsList);
- }
- return this.exceptions;
- }
-
- public ClassDoc[] interfaces()
- {
- if (null == this.interfaces) {
- this.interfaces = toClassDocArray(interfacesList);
- }
- return this.interfaces;
- }
-
- public ClassDoc[] errors()
- {
- if (null == this.errors) {
- this.errors = toClassDocArray(errorsList);
- }
- return this.errors;
- }
-
- private ClassDoc[] toClassDocArray(Collection classDocList)
- {
- ClassDoc[] result = classDocList.toArray(new ClassDoc[classDocList.size()]);
- Arrays.sort(result);
- return result;
- }
-
- public ClassDoc findClass(String name) {
- return Main.getRootDoc().classNamed(packageName+"."+name);
- }
-
- public void dump(int level) {
- Debug.log(level, "All classes:");
- Debug.dumpArray(level, allClasses());
-
- Debug.log(level, "Ordinary classes:");
- Debug.dumpArray(level, ordinaryClasses());
-
- }
-
- public static final PackageDocImpl DEFAULT_PACKAGE = new PackageDocImpl("");
-
- public boolean isPackage() {
- return true;
- }
-
- public boolean isIncluded() {
- return isIncluded;
- }
-
- void setIsIncluded(boolean b) {
- this.isIncluded=b;
- }
-
- private boolean isIncluded = false;
-
- public String toString() {
- return packageName;
- }
-
- public int compareTo(Doc d) {
- if (d !=null && d instanceof PackageDocImpl)
- return name().compareTo(((PackageDocImpl)d).name());
- else
- return 0;
- }
-
- public boolean equals(Object o) {
- if (o!=null && o instanceof PackageDocImpl)
- return name().equals(((PackageDocImpl)o).name());
- else
- return false;
- }
-
- /**
- * Sets the directory containing this package's source files.
- */
- public void setPackageDirectory(File packageDirectory) {
- this.packageDirectory = packageDirectory;
- }
-
- /**
- * Gets the directory containing this package's source files.
- */
- public File packageDirectory() {
- return this.packageDirectory;
- }
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ParamTagImpl.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ParamTagImpl.java
deleted file mode 100644
index a7491dc..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ParamTagImpl.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/* gnu.classpath.tools.gjdoc.ParamTagImpl
- Copyright (C) 2001 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a 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 gnu.classpath.tools.gjdoc;
-
-import com.sun.javadoc.*;
-import java.util.*;
-import java.text.*;
-
-public class ParamTagImpl extends AbstractTagImpl implements ParamTag {
-
- private String parameterName;
- private String parameterComment;
-
- public ParamTagImpl(String text,
- ClassDocImpl contextClass,
- MemberDocImpl contextMember) {
- super(text);
- char[] textarr=text.toCharArray();
- int i=0;
- for (; i=0) ++rc;
-
- return (rc!=index) ? rc : -1;
- }
- }
-
- class BracketClose extends SourceComponent {
-
- int match(char[] source, int index) {
- if (source[index]=='}') {
- return index+1;
- }
- else {
- return -1;
- }
- }
-
- int process(Parser parser, char[] source, int startIndex, int endIndex)
- throws ParseException, IOException
- {
- parser.classClosed();
- return endIndex;
- }
- }
-
- class CommentComponent extends SourceComponent {
-
- int match(char[] source, int index) throws ParseException {
- if (index+1= 0) {
- parser.setBoilerplateComment(boilerplateComment);
- }
- }
-
- return endIndex;
- }
- }
-
- class SlashSlashCommentComponent extends SourceComponent {
-
- int match(char[] source, int index) {
- if (index+1=0) {
-
- for (index+=7; index=0) {
-
- for (index+=7; index fields = FieldDocImpl.createFromSource(parser.ctx.classDoc,
- parser.ctx.classDoc.containingPackage(),
- source, startIndex, endIndex);
-
- for (Iterator it=fields.iterator(); it.hasNext(); ) {
- FieldDocImpl field=(FieldDocImpl)it.next();
- boolean fieldHasSerialTag=!field.isTransient() && !field.isStatic(); //field.hasSerialTag();
- if ((field.isIncluded() || fieldHasSerialTag) && parser.getAddComments()) {
- field.setRawCommentText(parser.getLastComment());
- }
- parser.ctx.fieldList.add(field);
- if (field.isIncluded()) {
- parser.ctx.filteredFieldList.add(field);
- }
- if (fieldHasSerialTag) {
- parser.ctx.sfieldList.add(field);
- }
- }
-
- parser.setLastComment(null);
- return endIndex;
- }
-
-
- }
-
- class FunctionComponent extends BlockSourceComponent {
-
- int getEndIndex(char[] source, int endIndex) throws ParseException {
- if (source[endIndex-1]==';') {
- return endIndex;
- }
- else {
- return super.getEndIndex(source, endIndex);
- }
- }
-
- int process(Parser parser, char[] source, int startIndex, int endIndex) throws IOException, ParseException {
-
- //ctx.fieldList.add(FieldDocImpl.createFromSource(source, startIndex, endIndex));
-
- //System.out.println("function match '"+new String(source,startIndex,endIndex-startIndex)+"'");
- ExecutableMemberDocImpl execDoc=MethodDocImpl.createFromSource(parser.ctx.classDoc,
- parser.ctx.classDoc.containingPackage(),
- source, startIndex, endIndex);
-
- if (parser.getAddComments())
- execDoc.setRawCommentText(parser.getLastComment());
-
- parser.setLastComment(null);
-
- if (execDoc.isMethod()) {
- MethodDoc methDoc = (MethodDoc) execDoc;
- parser.ctx.methodList.add(methDoc);
- if (methDoc.isIncluded()) {
- parser.ctx.filteredMethodList.add(methDoc);
- }
- if (methDoc.name().equals("readObject")
- || methDoc.name().equals("writeObject")
- || methDoc.name().equals("readExternal")
- || methDoc.name().equals("writeExternal")
- || methDoc.name().equals("readResolve")) {
- // FIXME: add readExternal here?
-
- parser.ctx.maybeSerMethodList.add(methDoc);
- }
- } else {
- ConstructorDoc constDoc = (ConstructorDoc) execDoc;
- parser.ctx.constructorList.add(constDoc);
- if (constDoc.isIncluded()) {
- parser.ctx.filteredConstructorList.add(constDoc);
- }
- }
-
- return endIndex;
- }
-
- int match(char[] source, int index) {
- boolean isFunc=false;
- final int STATE_NORMAL=1;
- final int STATE_SLASHC=2;
- final int STATE_STARC=3;
- int state=STATE_NORMAL;
- for (; index=0; ++index)
- ;
-
- if (index0) {
- if (source[index] == '(')
- ++ parLevel;
- if (source[index] == ')')
- -- parLevel;
- ++ index;
- if (parLevel==0)
- break;
- }
- }
- break;
- case '=': // field
- case ';': // field
- case '(': // function
- return -1;
- case '{':
- isClass=true;
- break;
- }
- if (isClass) break;
- }
- if (!isClass || index>=source.length)
- return -1;
-
- return index+1;
- }
-
- int process(Parser parser, char[] source, int startIndex, int endIndex) throws ParseException, IOException {
-
- parser.classOpened(source, startIndex, endIndex);
- if (parser.getAddComments())
- parser.ctx.classDoc.setRawCommentText(parser.getLastComment());
- parser.setLastComment(null);
- if (parser.ctx.classDoc.isEnum())
- {
- int depth = 0;
- for (int a = endIndex; a < source.length; ++a)
- {
- Debug.log(9, "Enum skipping " + a);
- if (source[a] == '{')
- {
- Debug.log(1, "Found inner { in enum");
- ++depth;
- }
- if (source[a] == '}')
- {
- if (depth > 0)
- {
- Debug.log(1, "Found inner } in enum");
- --depth;
- }
- else
- {
- Debug.log(1, "Found enum }");
- parser.classClosed();
- return a + 1;
- }
- }
- }
- }
- int rc=parser.parse(source, endIndex, parser.getClassLevelComponents());
- return rc;
- }
-
- }
-
-
-public class Parser {
-
-
- static int skipExpression(char[] source, int endIndex, int level, char delimiter) throws ParseException {
-
- int orgEndIndex=endIndex;
-
- final int STATE_NORMAL=1;
- final int STATE_STARC=2;
- final int STATE_SLASHC=3;
- final int STATE_CHAR=4;
- final int STATE_STRING=5;
-
- int state=STATE_NORMAL;
- int prev=0;
- for (; !((level==0 && state==STATE_NORMAL && (delimiter=='\0' || source[endIndex]==delimiter))) && endIndex0)
- throw new ParseException("Unexpected end of source.");
- else {
- String rc=new String(source, orgEndIndex, endIndex-orgEndIndex);
- return endIndex;
- }
- }
-
- private boolean addComments = false;
-
- public boolean getAddComments()
- {
- return this.addComments;
- }
-
- public static final String WHITESPACE=" \t\r\n";
-
- public static final boolean isWhitespace(char c) {
- return (c == ' ' || c == '\t' || c == '\n' || c == '\r' || c == '');
- //return WHITESPACE.indexOf(c)>=0;
- }
-
- private int currentLine;
-
- static char[] loadFile(final File file, String encoding)
- throws IOException
- {
- InputStream in = new FileInputStream(file);
- NotifyingInputStreamReader notifyingInput
- = new NotifyingInputStreamReader(in, encoding);
- notifyingInput.addMalformedInputListener(new MalformedInputListener() {
- public void malformedInputEncountered(MalformedInputEvent event) {
- Main.getRootDoc().printWarning("Illegal character in file " + file + ", line " + event.getLineNumber() + ", column " + event.getColumnNumber());
- try {
- Main.getRootDoc().printWarning(IOToolkit.getLineFromFile(file, event.getLineNumber()));
- Main.getRootDoc().printWarning(IOToolkit.getColumnDisplayLine(event.getColumnNumber()));
- }
- catch (IOException ignore) {
- }
- }
- });
- Reader reader
- = new BufferedReader(notifyingInput);
- char[] result = IOToolkit.readFully(reader);
- reader.close();
- return result;
- }
-
- private SourceComponent[] sourceLevelComponents;
- private SourceComponent[] classLevelComponents;
-
- public SourceComponent[] getClassLevelComponents()
- {
- return this.classLevelComponents;
- }
-
- public Parser() {
- try {
-
- sourceLevelComponents=new SourceComponent[] {
- new Whitespace(),
- new CommentComponent(),
- new SlashSlashCommentComponent(),
- new PackageComponent(),
- new EmptyStatementComponent(),
- new ImportComponent(),
- new ClassComponent(),
- };
-
- classLevelComponents=new SourceComponent[] {
- new Whitespace(),
- new BracketClose(),
- new CommentComponent(),
- new SlashSlashCommentComponent(),
- new FunctionComponent(),
- new StaticBlockComponent(),
- new ImportComponent(),
- new ClassComponent(),
- new FieldComponent(),
- };
- }
- catch (Exception e) {
- e.printStackTrace();
- }
- }
-
- public int getNumberOfProcessedFiles() {
- return processedFiles.size();
- }
-
- static Set processedFiles = new HashSet();
-
- ClassDocImpl processSourceFile(File file, boolean addComments,
- String encoding, String expectedPackageName)
- throws IOException, ParseException
- {
- //System.err.println("Processing " + file + "...");
- this.currentFile = file;
- this.currentPackage = null;
- this.currentPackageName = null;
- this.expectedPackageName = expectedPackageName;
- this.outerClass = null;
- this.boilerplateComment = null;
-
- this.addComments=addComments;
-
- if (processedFiles.contains(file)) {
- return null;
- }
-
- processedFiles.add(file);
-
- Debug.log(1,"Processing file "+file);
-
- contextStack.clear();
- ctx=null;
-
- importedClassesList.clear();
- importedStringList.clear();
- importedPackagesList.clear();
- importedStatementList.clear();
-
- currentLine = 1;
-
- char[] source = loadFile(file, encoding);
-
- try {
- parse(source, 0, sourceLevelComponents);
-
- ClassDoc[] importedClasses = importedClassesList.toArray(new ClassDoc[importedClassesList.size()]);
- PackageDoc[] importedPackages = importedPackagesList.toArray(new PackageDoc[importedPackagesList.size()]);
-
- if (Main.DESCEND_IMPORTED) {
- for (int i=0; i0) {
- Debug.log(1,"-->contextStack not empty! size is "+contextStack.size());
- }
-
- return outerClass;
- }
- catch (IgnoredFileParseException ignore) {
- Debug.log(1, "File ignored: " + ignore);
- return null;
- }
- }
-
- int parse(char[] source, int index, SourceComponent[] componentTypes) throws ParseException, IOException {
-
- while (index=0) {
- //Debug.log(1,componentTypes[i].getClass().getName()+" ("+match+"/"+source.length+")");
- break;
- }
- }
-
- if (i it=importedStringList.iterator(); it.hasNext(); ) {
- importedClassesList.add(new ClassDocProxy(it.next(), classDoc));
- }
- }
- classDoc.setImportedClasses(importedClassesList.toArray(new ClassDoc[importedClassesList.size()]));
-
- currentPackage.addClass(classDoc);
-
- currentClass = classDoc;
-
- if (null == outerClass) {
- outerClass = classDoc;
- }
-
- if (classDoc.superclass()!=null)
- referencedClassesList.add(classDoc.superclass());
-
- Debug.log(1,"classOpened "+classDoc+", adding superclass "+classDoc.superclass());
- Debug.log(1,"Pushing " + ctx);
- contextStack.push(ctx);
- ctx=new Context(classDoc);
- //Debug.log(9,"ctx="+ctx);
- }
-
- private T[] toArray(List list, T[] template)
- {
- return list.toArray(template);
- }
-
- void classClosed() throws ParseException, IOException {
- ctx.classDoc.setFields(toArray(ctx.fieldList,new FieldDoc[ctx.fieldList.size()]));
- ctx.classDoc.setFilteredFields(toArray(ctx.filteredFieldList,new FieldDoc[ctx.filteredFieldList.size()]));
- ctx.classDoc.setSerializableFields(toArray(ctx.sfieldList, new FieldDoc[ctx.sfieldList.size()]));
- ctx.classDoc.setMethods(toArray(ctx.methodList, new MethodDoc[ctx.methodList.size()]));
- ctx.classDoc.setFilteredMethods(toArray(ctx.filteredMethodList, new MethodDoc[ctx.filteredMethodList.size()]));
- ctx.classDoc.setMaybeSerMethodList(ctx.maybeSerMethodList);
- ctx.classDoc.setConstructors(toArray(ctx.constructorList, new ConstructorDoc[ctx.constructorList.size()]));
- ctx.classDoc.setFilteredConstructors(toArray(ctx.filteredConstructorList,
- new ConstructorDoc[ctx.filteredConstructorList.size()]));
- ctx.classDoc.setInnerClasses(toArray(ctx.innerClassesList, new ClassDocImpl[ctx.innerClassesList.size()]));
- ctx.classDoc.setFilteredInnerClasses(toArray(ctx.filteredInnerClassesList,
- new ClassDocImpl[ctx.filteredInnerClassesList.size()]));
- ctx.classDoc.setBoilerplateComment(boilerplateComment);
-
- Main.getRootDoc().addClassDoc(ctx.classDoc);
-
- if (Main.DESCEND_INTERFACES) {
- for (int i=0; i fieldList = new LinkedList();
- List filteredFieldList = new LinkedList();
- List sfieldList = new LinkedList();
- List methodList = new LinkedList();
- List filteredMethodList = new LinkedList();
- List maybeSerMethodList = new LinkedList();
- List constructorList = new LinkedList();
- List filteredConstructorList = new LinkedList();
- List innerClassesList = new LinkedList();
- List filteredInnerClassesList = new LinkedList();
- }
-
- File currentFile = null;
- String lastComment = null;
- String expectedPackageName = null;
- String currentPackageName = null;
- PackageDocImpl currentPackage = null;
- ClassDocImpl currentClass = null;
- ClassDocImpl outerClass = null;
- List ordinaryClassesList = new LinkedList();
- List allClassesList = new LinkedList();
- List interfacesList = new LinkedList();
-
- List importedClassesList = new LinkedList();
- List importedStringList = new LinkedList();
- List importedPackagesList = new LinkedList();
- List importedStatementList = new LinkedList();
-
- List referencedClassesList = new LinkedList();
-
- String boilerplateComment = null;
-
- void packageOpened(String packageName) {
- currentPackageName = packageName;
- }
-
- void importEncountered(String importString) throws ParseException, IOException {
- //Debug.log(9,"importing '"+importString+"'");
-
- importedStatementList.add(importString);
-
- if (importString.endsWith(".*")) {
- importedPackagesList.add(Main.getRootDoc().findOrCreatePackageDoc(importString.substring(0,importString.length()-2)));
- }
- else {
- importedStringList.add(importString);
- }
- }
-
-
- void setLastComment(String lastComment) {
- this.lastComment=lastComment;
- }
-
- String getLastComment() {
- return this.lastComment;
- }
-
- void setBoilerplateComment(String boilerplateComment)
- {
- this.boilerplateComment = boilerplateComment;
- }
-
- String getBoilerplateComment()
- {
- return boilerplateComment;
- }
-
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ProgramElementDocImpl.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ProgramElementDocImpl.java
deleted file mode 100644
index bdcf61b..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ProgramElementDocImpl.java
+++ /dev/null
@@ -1,177 +0,0 @@
-/* gnu.classpath.tools.gjdoc.ProgramElementDocImpl
- Copyright (C) 2001 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a 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 gnu.classpath.tools.gjdoc;
-
-import com.sun.javadoc.*;
-import java.lang.reflect.Modifier;
-
-public abstract class ProgramElementDocImpl extends DocImpl implements ProgramElementDoc {
-
- protected ClassDoc containingClass;
- protected PackageDoc containingPackage;
-
- protected boolean isFinal;
- protected boolean isStatic;
- protected int accessLevel=ProgramElementDocImpl.ACCESS_PACKAGEPRIVATE;
-
- public static final int ACCESS_PUBLIC = 0;
- public static final int ACCESS_PROTECTED = 1;
- public static final int ACCESS_PACKAGEPRIVATE = 2;
- public static final int ACCESS_PRIVATE = 3;
-
- private static final String[] accessModifiers = { "public ", "protected ", "", "private "};
-
- public ProgramElementDocImpl(ClassDoc containingClass,
- PackageDoc containingPackage,
- SourcePosition position) {
- super(position);
- this.containingClass=containingClass;
- this.containingPackage=containingPackage;
- }
- public ProgramElementDocImpl(ClassDoc containingClass, SourcePosition position) {
- super(position);
- this.containingClass=containingClass;
- this.containingPackage=containingClass.containingPackage();
- }
- public ProgramElementDocImpl(ClassDoc containingClass,
- PackageDoc containingPackage,
- int accessLevel,
- boolean isFinal,
- boolean isStatic,
- SourcePosition position) {
- super(position);
- this.containingClass=containingClass;
- this.containingPackage=containingPackage;
- this.accessLevel=accessLevel;
- this.isFinal=isFinal;
- this.isStatic=isStatic;
- }
-
- //Get the containing class of this program element.
- public ClassDoc containingClass() {
- return containingClass;
- }
-
- // Get the package that this program element is contained in.
- public PackageDoc containingPackage() {
- return containingPackage;
- }
-
- // Return true if this program element is final
- public boolean isFinal() {
- return isFinal;
- }
-
- // Return true if this program element is package private
- public boolean isPackagePrivate() {
- return accessLevel==ACCESS_PACKAGEPRIVATE;
- }
-
- // Return true if this program element is private
- public boolean isPrivate() {
- return accessLevel==ACCESS_PRIVATE;
- }
-
- // Return true if this program element is protected
- public boolean isProtected() {
- return accessLevel==ACCESS_PROTECTED;
- }
-
- // Return true if this program element is public
- public boolean isPublic() {
- return accessLevel==ACCESS_PUBLIC;
- }
-
- // Return true if this program element is static
- public boolean isStatic() {
- return isStatic;
- }
-
- // Get modifiers string.
- public String modifiers() {
- return
- (accessModifiers[accessLevel]+
- (isStatic()?"static ":"")+
- (isFinal()?"final ":"")).trim();
- }
-
- // Get the modifier specifier integer.
- public int modifierSpecifier() {
- return (isStatic()?Modifier.STATIC:0)
- | (isFinal()?Modifier.FINAL:0)
- | (isPublic()?Modifier.PUBLIC:0)
- | (isProtected()?Modifier.PROTECTED:0)
- | (isPrivate()?Modifier.PRIVATE:0)
-// | (isAbstract()?Modifier.ABSTRACT:0)
- ;
- }
-
- // Get the fully qualified name.
- public abstract String qualifiedName();
-
- protected boolean processModifier(String word) {
- if (word.equals("public")) {
- accessLevel=ACCESS_PUBLIC;
- return true;
- }
- else if (word.equals("protected")) {
- accessLevel=ACCESS_PROTECTED;
- return true;
- }
- else if (word.equals("private")) {
- accessLevel=ACCESS_PRIVATE;
- return true;
- }
- else if (word.equals("static")) {
- isStatic=true;
- return true;
- }
- else if (word.equals("final")) {
- isFinal=true;
- return true;
- }
- else {
- return false;
- }
- }
-
- void setIsStatic(boolean b) {
- this.isStatic=b;
- }
-
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/RootDocImpl.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/RootDocImpl.java
deleted file mode 100644
index dd76ffa..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/RootDocImpl.java
+++ /dev/null
@@ -1,1334 +0,0 @@
-/* gnu.classpath.tools.gjdoc.RootDocImpl
- Copyright (C) 2001, 2007, 2012 Free Software Foundation, Inc.
-
- This file is part of GNU Classpath.
-
- GNU Classpath is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2, or (at your option)
- any later version.
-
- GNU Classpath is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with GNU Classpath; see the file COPYING. If not, write to the
- Free Software Foundation, Inc., 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 gnu.classpath.tools.gjdoc;
-
-import com.sun.javadoc.*;
-import java.util.*;
-import java.io.*;
-import java.lang.reflect.*;
-
-public class RootDocImpl
- extends DocImpl
- implements GjdocRootDoc {
-
- private ErrorReporter reporter = new ErrorReporter();
-
- private RandomAccessFile rawCommentCache;
-
- /**
- * All options and their corresponding values which are not recognized
- * by Gjdoc. These are passed to the Doclet as "custom options".
- * Each element in this array is again a String array, with the
- * option name as first element (including prefix dash) and possible
- * option values as following elements.
- */
- private String[][] customOptionArr;
-
- /**
- * All source files explicitly specified on the command line.
- *
- * @contains File
- */
- private List specifiedSourceFiles = new LinkedList();
-
- /**
- * The names of all packages explicitly specified on the
- * command line.
- *
- * @contains String
- */
- private Set specifiedPackageNames = new LinkedHashSet();
-
- /**
- * Stores all classes specified by the user: those given by
- * individual class names on the command line, and those
- * contained in the packages given on the command line.
- *
- * @contains ClassDocImpl
- */
- private List classesList = new LinkedList(); //new LinkedList();
-
- /**
- * Stores all classes loaded in the course of preparing
- * the documentation data. Maps the fully qualified name
- * of a class to its ClassDocImpl representation.
- *
- * @contains String->ClassDocImpl
- */
- private Map classDocMap = new HashMap();
-
- /**
- * Stores all packages loaded in the course of preparing
- * the documentation data. Maps the package name
- * to its PackageDocImpl representation.
- *
- * @contains String->PackageDocImpl
- */
- private Map packageDocMap = new HashMap();
-
- /**
- * All classes specified by the user, both those explicitly
- * individually specified on the command line and those contained
- * in packages specified on the command line (as Array for quick
- * retrieval by Doclet). This is created from classesList after
- * all classes have been loaded.
- */
- private ClassDocImpl[] classes;
-
- /**
- * All classes which were individually specified on the command
- * line (as Array for quick retrieval by Doclet). This is created
- * from specifiedClassNames after all classes have been loaded.
- */
- private List specifiedClasses;
-
- /**
- * All packages which were specified on the command line (as Array
- * for quick retrieval by Doclet). This is created from
- * specifiedPackageNames after all classes have been loaded.
- */
- private Set specifiedPackages;
-
-
- /**
- * Temporarily stores a list of classes which are referenced
- * by classes already loaded and which still have to be
- * resolved.
- */
- private List scheduledClasses=new LinkedList();
-
- private List sourcePath;
-
- private String sourceEncoding;
-
- private Parser parser = new Parser();
-
- private Set unlocatableReportedSet = new HashSet();
-
- private Set inaccessibleReportedSet = new HashSet();
-
- //--------------------------------------------------------------------------
- //
- // Implementation of RootDoc interface
- //
- //--------------------------------------------------------------------------
-
- /**
- * Return classes and interfaces to be documented.
- */
- public ClassDoc[] classes() { return classes; }
-
- /**
- * Return a ClassDoc object for the specified class/interface
- * name.
- *
- * @return a ClassDoc object describing the given class, or
- * null if no corresponding ClassDoc object
- * has been constructed.
- */
- public ClassDoc classNamed(String qualifiedName) {
- return (ClassDoc)classDocMap.get(qualifiedName);
- }
-
- /**
- * Return an xxx
- */
- public String[][] options() { return customOptionArr; }
-
- // Return a PackageDoc for the specified package name
- public PackageDoc packageNamed(String name) {
- return (PackageDoc)packageDocMap.get(name);
- }
-
-
- // classes and interfaces specified on the command line.
- public ClassDoc[] specifiedClasses()
- {
- return (ClassDocImpl[]) specifiedClasses.toArray(new ClassDocImpl[0]);
- }
-
- // packages specified on the command line.
- public PackageDoc[] specifiedPackages()
- {
- return (PackageDocImpl[])specifiedPackages.toArray(new PackageDocImpl[0]);
- }
-
- // Print error message, increment error count.
- public void printError(java.lang.String msg) {
- reporter.printError(msg);
- }
-
- // Print error message, increment error count.
- public void printFatal(java.lang.String msg) {
- reporter.printFatal(msg);
- }
-
- // Print a message.
- public void printNotice(java.lang.String msg) {
- reporter.printNotice(msg);
- }
-
- // Print warning message, increment warning count.
- public void printWarning(java.lang.String msg) {
- reporter.printWarning(msg);
- }
-
- public String name() {
- return "RootDoc";
- }
-
- public ErrorReporter getReporter() {
- return reporter;
- }
-
- public void build() throws ParseException, IOException {
-
- //--- Create a temporary random access file for caching comment text.
-
- //File rawCommentCacheFile=File.createTempFile("gjdoc_rawcomment",".cache");
- File rawCommentCacheFile = new File("gjdoc_rawcomment.cache");
- rawCommentCacheFile.deleteOnExit();
- rawCommentCache = new RandomAccessFile(rawCommentCacheFile, "rw");
-
- //--- Parse all files in "java.lang".
-
- List javaLangSourceDirs = findSourceFiles("java/lang");
- if (!javaLangSourceDirs.isEmpty()) {
- Iterator it = javaLangSourceDirs.iterator();
- while (it.hasNext()) {
- File javaLangSourceDir = (File)it.next();
- parser.processSourceDir(javaLangSourceDir,
- sourceEncoding, "java.lang");
- }
- }
- else {
-
- Debug.log(1, "Sourcepath is "+sourcePath);
-
- // Core docs not included in source-path:
- // we need to gather the information about java.lang
- // classes via reflection...
-
- }
-
- //--- Parse all files in explicitly specified package directories.
-
- for (Iterator it=specifiedPackageNames.iterator(); it.hasNext(); ) {
-
- String specifiedPackageName = (String)it.next();
- String displayPackageName = specifiedPackageName;
- if (null == displayPackageName || 0 == displayPackageName.length()) {
- displayPackageName = "";
- }
- printNotice("Loading classes for package "+displayPackageName+"...");
- String relPath;
- if (null != specifiedPackageName) {
- relPath = specifiedPackageName.replace('.',File.separatorChar);
- }
- else {
- relPath = "";
- }
- List sourceDirs = findSourceFiles(relPath);
- if (!sourceDirs.isEmpty()) {
- Iterator sourceDirIt = sourceDirs.iterator();
- while (sourceDirIt.hasNext()) {
- File sourceDir = (File)sourceDirIt.next();
- parser.processSourceDir(sourceDir, sourceEncoding, specifiedPackageName);
- }
- }
- else {
- printError("Package '"+specifiedPackageName+"' not found.");
- }
- }
-
- specifiedClasses = new LinkedList();
-
- //--- Parse all explicitly specified source files.
-
- for (Iterator it=specifiedSourceFiles.iterator(); it.hasNext(); ) {
-
- File specifiedSourceFile = (File)it.next();
- printNotice("Loading source file "+specifiedSourceFile+" ...");
- ClassDocImpl classDoc = parser.processSourceFile(specifiedSourceFile, true, sourceEncoding, null);
- if (null != classDoc) {
- specifiedClasses.add(classDoc);
- classesList.add(classDoc);
- classDoc.setIsIncluded(true);
- addPackageDoc(classDoc.containingPackage());
- }
- }
-
-
- //--- Let the user know that all specified classes are loaded.
-
- printNotice("Constructing Javadoc information...");
-
- //--- Load all classes implicitly referenced by explicitly specified classes.
-
- loadScheduledClasses(parser);
-
- printNotice("Resolving references in comments...");
-
- resolveComments();
-
- //--- Resolve pending references in all ClassDocImpls
-
- printNotice("Resolving references in classes...");
-
- for (Iterator it = classDocMap.values().iterator(); it.hasNext(); ) {
- ClassDoc cd=(ClassDoc)it.next();
- if (cd instanceof ClassDocImpl) {
- ((ClassDocImpl)cd).resolve();
- }
- }
-
- //--- Resolve pending references in all PackageDocImpls
-
- printNotice("Resolving references in packages...");
-
- for (Iterator it = packageDocMap.values().iterator(); it.hasNext(); ) {
- PackageDocImpl pd=(PackageDocImpl)it.next();
- pd.resolve();
- }
-
- //--- Assemble the array with all specified packages
-
- specifiedPackages = new LinkedHashSet();
- for (Iterator it = specifiedPackageNames.iterator(); it.hasNext(); ) {
- String specifiedPackageName = (String)it.next();
- PackageDoc specifiedPackageDoc = (PackageDoc)packageDocMap.get(specifiedPackageName);
- if (null!=specifiedPackageDoc) {
- ((PackageDocImpl)specifiedPackageDoc).setIsIncluded(true);
- specifiedPackages.add(specifiedPackageDoc);
-
- ClassDoc[] packageClassDocs=specifiedPackageDoc.allClasses();
- for (int i=0; i findSourceFiles(String relPath) {
-
- List result = new LinkedList();
- for (Iterator it = sourcePath.iterator(); it.hasNext(); ) {
- File path = it.next();
- File file = new File(path, relPath);
- if (file.exists()) {
- result.add(file);
- }
- }
-
- return result;
- }
-
- PackageDocImpl findOrCreatePackageDoc(String packageName) {
- PackageDocImpl rc=(PackageDocImpl)getPackageDoc(packageName);
- if (null==rc) {
- rc=new PackageDocImpl(packageName);
- if (specifiedPackageNames.contains(packageName)) {
- String packageDirectoryName = packageName.replace('.', File.separatorChar);
- List packageDirectories = findSourceFiles(packageDirectoryName);
- Iterator it = packageDirectories.iterator();
- boolean packageDocFound = false;
- while (it.hasNext()) {
- File packageDirectory = (File)it.next();
- File packageDocFile = new File(packageDirectory, "package.html");
- rc.setPackageDirectory(packageDirectory);
- packageDocFound = true;
- if (null!=packageDocFile && packageDocFile.exists()) {
- try {
- rc.setRawCommentText(readHtmlBody(packageDocFile));
- }
- catch (IOException e) {
- printWarning("Error while reading documentation for package "+packageName+": "+e.getMessage());
- }
- break;
- }
- }
- if (!packageDocFound) {
- printNotice("No description found for package "+packageName);
- }
- }
- addPackageDoc(rc);
- }
- return rc;
- }
-
- public void addClassDoc(ClassDoc cd) {
- classDocMap.put(cd.qualifiedName(), cd);
- }
-
- public void addClassDocRecursive(ClassDoc cd) {
- classDocMap.put(cd.qualifiedName(), cd);
- ClassDoc[] innerClasses = cd.innerClasses(false);
- for (int i=0; i0) {
-
- // Maybe the dotted notation doesn't mean a package
- // name but instead an inner class, as in 'Outer.Inner'.
- // so let's assume this and try to load the outer class.
-
- String outerClass="";
- for (StringTokenizer st=new StringTokenizer(scheduledClassName,"."); st.hasMoreTokens(); ) {
- if (outerClass.length()>0) outerClass+=".";
- outerClass+=st.nextToken();
- if (!st.hasMoreTokens()) break;
- try {
- loadClass(outerClass);
- //FIXME: shouldn't this be loadScheduledClass(outerClass, scheduledClassContext); ???
- continue;
- }
- catch (Exception ee) {
- // Ignore: try next level
- }
- }
- }
-
- **********************************************************/
-
- // If we arrive here, the class could not be found
-
- printWarning("Couldn't load class "+scheduledClassName+" referenced by "+scheduledClassContext);
-
- //FIXME: shouldn't this be throw new Error("cannot load: "+scheduledClassName);
- }
- }
- }
- }
-
- private void loadScheduledClass(Parser parser, String scheduledClassName, ClassDoc scheduledClassContext) throws ParseException, IOException {
-
- ClassDoc loadedClass=(ClassDoc)scheduledClassContext.findClass(scheduledClassName);
-
- if (loadedClass==null || loadedClass instanceof ClassDocProxy) {
-
- ClassDoc classDoc = findScheduledClassFile(scheduledClassName, scheduledClassContext);
- if (null != classDoc) {
-
- if (classDoc instanceof ClassDocReflectedImpl) {
- Main.getRootDoc().addClassDocRecursive(classDoc);
- }
-
- if (Main.DESCEND_SUPERCLASS
- && null != classDoc.superclass()
- && (classDoc.superclass() instanceof ClassDocProxy)) {
- scheduleClass(classDoc, classDoc.superclass().qualifiedName());
- }
- }
- else {
- // It might be an inner class of one of the outer/super classes.
- // But we can only check that when they are all fully loaded.
- boolean retryLater = false;
-
- int numberOfProcessedFilesBefore = parser.getNumberOfProcessedFiles();
-
- ClassDoc cc = scheduledClassContext.containingClass();
- while (cc != null && !retryLater) {
- ClassDoc sc = cc.superclass();
- while (sc != null && !retryLater) {
- if (sc instanceof ClassDocProxy) {
- ((ClassDocImpl)cc).resolve();
- retryLater = true;
- }
- sc = sc.superclass();
- }
- cc = cc.containingClass();
- }
-
- // Now that outer/super references have been resolved, try again
- // to find the class.
-
- loadedClass = (ClassDoc)scheduledClassContext.findClass(scheduledClassName);
-
- int numberOfProcessedFilesAfter = parser.getNumberOfProcessedFiles();
-
- boolean filesWereProcessed = numberOfProcessedFilesAfter > numberOfProcessedFilesBefore;
-
- // Only re-schedule class if additional files have been processed
- // If there haven't, there's no point in re-scheduling.
- // Will avoid infinite loops of re-scheduling
- if (null == loadedClass && retryLater && filesWereProcessed)
- scheduleClass(scheduledClassContext, scheduledClassName);
-
- /* A warning needn't be emitted - this is normal, can happen
- if the scheduled class is in a package which is not
- included on the command line.
-
- else if (null == loadedClass)
- printWarning("Can't find scheduled class '"
- + scheduledClassName
- + "' in context '"
- + scheduledClassContext.qualifiedName()
- + "'");
- */
- }
- }
- }
-
- private static interface ResolvedImport
- {
- public String match(String name);
- public boolean mismatch(String name);
- public ClassDoc tryFetch(String name);
- }
-
- private class ResolvedImportNotFound
- implements ResolvedImport
- {
- private String importSpecifier;
- private String name;
-
- ResolvedImportNotFound(String importSpecifier)
- {
- this.importSpecifier = importSpecifier;
- int ndx = importSpecifier.lastIndexOf('.');
- if (ndx >= 0) {
- this.name = importSpecifier.substring(ndx + 1);
- }
- else {
- this.name = importSpecifier;
- }
- }
-
- public String toString()
- {
- return "ResolvedImportNotFound{" + importSpecifier + "}";
- }
-
- public String match(String name)
- {
- if ((name.equals(this.name)) || (importSpecifier.equals(name)))
- return this.name;
- // FIXME: note that we don't handle on-demand imports here.
- return null;
- }
-
- public boolean mismatch(String name)
- {
- return true; // FIXME!
- }
-
- public ClassDoc tryFetch(String name)
- {
- return null;
- }
- }
-
- private class ResolvedImportPackageFile
- implements ResolvedImport
- {
- private Set topLevelClassNames;
- private File packageFile;
- private String packageName;
- private Map cache = new HashMap();
-
- ResolvedImportPackageFile(File packageFile, String packageName)
- {
- this.packageFile = packageFile;
- this.packageName = packageName;
- topLevelClassNames = new HashSet();
- File[] files = packageFile.listFiles();
- for (int i=0; i 0) {
- innerClassName = topLevelName.substring(ndx + 1);
- topLevelName = topLevelName.substring(0, ndx);
- }
-
- if (topLevelClassNames.contains(topLevelName)) {
- //System.err.println(this + ".match returns " + packageName + "." + name);
- return packageName + "." + name;
- }
- // FIXME: inner classes
- else {
- return null;
- }
- }
- }
-
- public boolean mismatch(String name)
- {
- return null == match(name);
- }
-
- public ClassDoc tryFetch(String name)
- {
- ClassDoc loadedClass = classNamed(packageName + "." + name);
- if (null != loadedClass) {
- return loadedClass;
- }
- else if (null != match(name)) {
-
- String topLevelName = name;
- int ndx = topLevelName.indexOf('.');
- String innerClassName = null;
- if (ndx > 0) {
- innerClassName = topLevelName.substring(ndx + 1);
- topLevelName = topLevelName.substring(0, ndx);
- }
-
- ClassDoc topLevelClass = (ClassDoc)cache.get(topLevelName);
- if (null == topLevelClass) {
- File classFile = new File(packageFile, topLevelName + ".java");
- try {
- // FIXME: inner classes
- topLevelClass = parser.processSourceFile(classFile, false, sourceEncoding, null);
- }
- catch (Exception ignore) {
- printWarning("Could not parse source file " + classFile);
- }
- cache.put(topLevelName, topLevelClass);
- }
- if (null == innerClassName) {
- return topLevelClass;
- }
- else {
- return getInnerClass(topLevelClass, innerClassName);
- }
- }
- else {
- return null;
- }
- }
-
- public String toString()
- {
- return "ResolvedImportPackageFile{" + packageFile + "," + packageName + "}";
- }
- }
-
- private ClassDoc getInnerClass(ClassDoc topLevelClass, String innerClassName)
- {
- StringTokenizer st = new StringTokenizer(innerClassName, ".");
- outer:
-
- while (st.hasMoreTokens()) {
- String innerClassNameComponent = st.nextToken();
- ClassDoc[] innerClasses = topLevelClass.innerClasses();
- for (int i=0; i 0) {
- _innerClassName = topLevelName.substring(ndx + 1);
- topLevelName = topLevelName.substring(0, ndx);
- }
-
- if (this.name.equals(topLevelName)) {
- if (null == _innerClassName) {
- return qualifiedName;
- }
- else {
- return qualifiedName + "." + _innerClassName;
- }
- }
- else {
- return null;
- }
- }
-
- public boolean mismatch(String name)
- {
- return null == match(name);
- }
-
- public ClassDoc tryFetch(String name)
- {
- if (null != match(name)) {
- ClassDoc topLevelClass = null;
- if (alreadyFetched) {
- topLevelClass = classDoc;
- }
- else {
- alreadyFetched = true;
- try {
- topLevelClass = parser.processSourceFile(classFile, false, sourceEncoding, null);
- }
- catch (Exception ignore) {
- printWarning("Could not parse source file " + classFile);
- }
- }
- if (null == topLevelClass) {
- return null;
- }
- else {
- return getInnerClass(topLevelClass, innerClassName);
- }
- }
- else {
- return null;
- }
- }
-
- public String getName()
- {
- if (innerClassName != null) {
- return name + innerClassName;
- }
- else {
- return name;
- }
- }
- }
-
- private class ResolvedImportReflectionClass
- implements ResolvedImport
- {
- private Class clazz;
- private String name;
-
- ResolvedImportReflectionClass(Class clazz)
- {
- this.clazz = clazz;
- String className = clazz.getName();
- int ndx = className.lastIndexOf('.');
- if (ndx >= 0) {
- this.name = className.substring(ndx + 1);
- }
- else {
- this.name = className;
- }
- }
-
- public String toString()
- {
- return "ResolvedImportReflectionClass{" + clazz.getName() + "}";
- }
-
- public String match(String name)
- {
- if ((this.name.equals(name)) || (clazz.getName().equals(name))) {
- return clazz.getName();
- }
- else {
- return null;
- }
- }
-
- public boolean mismatch(String name)
- {
- return null == match(name);
- }
-
- public ClassDoc tryFetch(String name)
- {
- if (null != match(name)) {
- return new ClassDocReflectedImpl(clazz);
- }
- // FIXME: inner classes?
- else {
- return null;
- }
- }
-
- public String getName()
- {
- return name;
- }
- }
-
- private class ResolvedImportReflectionPackage
- implements ResolvedImport
- {
- private String packagePrefix;
-
- ResolvedImportReflectionPackage(String packagePrefix)
- {
- this.packagePrefix = packagePrefix;
- }
-
- public String toString()
- {
- return "ResolvedImportReflectionPackage{" + packagePrefix + ".*}";
- }
-
- public String match(String name)
- {
- try {
- Class clazz = Class.forName(packagePrefix + "." + name);
- return clazz.getName();
- }
- catch (Exception e) {
- return null;
- }
- }
-
- public boolean mismatch(String name)
- {
- return null == match(name);
- }
-
- public ClassDoc tryFetch(String name)
- {
- try {
- Class clazz = Class.forName(packagePrefix + name);
- return ClassDocReflectedImpl.newInstance(clazz);
- }
- catch (Exception e) {
- return null;
- }
- }
-
- public String getName()
- {
- return packagePrefix;
- }
- }
-
- private List unlocatablePrefixes = new LinkedList();
-
- private ResolvedImport resolveImport(String importSpecifier)
- {
- ResolvedImport result = resolveImportFileSystem(importSpecifier);
- if (null == result && Main.getInstance().isReflectionEnabled()) {
- result = resolveImportReflection(importSpecifier);
- }
- if (null == result) {
- result = new ResolvedImportNotFound(importSpecifier);
- }
- return result;
- }
-
- private ResolvedImport resolveImportReflection(String importSpecifier)
- {
- String importedPackageOrClass = importSpecifier;
- if (importedPackageOrClass.endsWith(".*")) {
- importedPackageOrClass = importedPackageOrClass.substring(0, importedPackageOrClass.length() - 2);
-
- return new ResolvedImportReflectionPackage(importedPackageOrClass);
-
- //return null;
- }
- else {
- try {
- Class importedClass = Class.forName(importSpecifier);
- return new ResolvedImportReflectionClass(importedClass);
- }
- catch (Throwable ignore) {
- return null;
- }
- }
- }
-
- private ResolvedImport resolveImportFileSystem(String importSpecifier)
- {
- for (Iterator it = unlocatablePrefixes.iterator(); it.hasNext(); ) {
- String unlocatablePrefix = (String)it.next();
- if (importSpecifier.startsWith(unlocatablePrefix)) {
- return null;
- }
- }
-
- String longestUnlocatablePrefix = "";
-
- for (Iterator it=sourcePath.iterator(); it.hasNext(); ) {
-
- File _sourcePath = (File)it.next();
-
- StringBuffer packageOrClassPrefix = new StringBuffer();
- StringTokenizer st = new StringTokenizer(importSpecifier, ".");
- while (st.hasMoreTokens() && _sourcePath.isDirectory()) {
- String token = st.nextToken();
- if ("*".equals(token)) {
- return new ResolvedImportPackageFile(_sourcePath,
- packageOrClassPrefix.substring(0, packageOrClassPrefix.length() - 1));
- }
- else {
- packageOrClassPrefix.append(token);
- packageOrClassPrefix.append('.');
- File classFile = new File(_sourcePath, token + ".java");
- //System.err.println(" looking for file " + classFile);
- if (classFile.exists()) {
- StringBuffer innerClassName = new StringBuffer();
- while (st.hasMoreTokens()) {
- token = st.nextToken();
- if (innerClassName.length() > 0) {
- innerClassName.append('.');
- }
- innerClassName.append(token);
- }
- return new ResolvedImportClassFile(classFile, innerClassName.toString(), token, importSpecifier);
- }
- else {
- _sourcePath = new File(_sourcePath, token);
- }
- }
- }
- if (st.hasMoreTokens()) {
- if (packageOrClassPrefix.length() > longestUnlocatablePrefix.length()) {
- longestUnlocatablePrefix = packageOrClassPrefix.toString();
- }
- }
- }
-
- if (longestUnlocatablePrefix.length() > 0) {
- unlocatablePrefixes.add(longestUnlocatablePrefix);
- }
-
- return null;
- }
-
- private Map resolvedImportCache = new HashMap();
-
- private ResolvedImport getResolvedImport(String importSpecifier)
- {
- ResolvedImport result
- = (ResolvedImport)resolvedImportCache.get(importSpecifier);
- if (null == result) {
- result = resolveImport(importSpecifier);
- resolvedImportCache.put(importSpecifier, result);
- }
- return result;
- }
-
- public String resolveClassName(String className, ClassDocImpl context)
- {
- Iterator it = context.getImportSpecifierList().iterator();
- while (it.hasNext()) {
- String importSpecifier = (String)it.next();
- ResolvedImport resolvedImport = getResolvedImport(importSpecifier);
- String resolvedScheduledClassName = resolvedImport.match(className);
-
- if (null != resolvedScheduledClassName) {
- return resolvedScheduledClassName;
- }
- }
- return className;
- }
-
- public ClassDoc findScheduledClassFile(String scheduledClassName,
- ClassDoc scheduledClassContext)
- throws ParseException, IOException
- {
- String resolvedScheduledClassName = null;
-
- if (scheduledClassContext instanceof ClassDocImpl) {
-
- //((ClassDocImpl)scheduledClassContext).resolveReferencedName(scheduledClassName);
- Iterator it = ((ClassDocImpl)scheduledClassContext).getImportSpecifierList().iterator();
- while (it.hasNext()) {
- String importSpecifier = (String)it.next();
- ResolvedImport resolvedImport = getResolvedImport(importSpecifier);
- //System.err.println(" looking in import '" + resolvedImport + "'");
- resolvedScheduledClassName = resolvedImport.match(scheduledClassName);
- if (null != resolvedScheduledClassName) {
- ClassDoc result = resolvedImport.tryFetch(scheduledClassName);
- if (null != result) {
- return result;
- }
- else {
- if (!inaccessibleReportedSet.contains(scheduledClassName)) {
- inaccessibleReportedSet.add(scheduledClassName);
- printWarning("Error while loading class " + scheduledClassName);
- }
- // FIXME: output resolved class name here
- return null;
- }
- }
- }
- }
- else {
- System.err.println("findScheduledClassFile for '" + scheduledClassName + "' in proxy for " + scheduledClassContext);
- }
-
- // interpret as fully qualified name on file system
-
- ResolvedImport fqImport = resolveImportFileSystem(scheduledClassName);
- if (null != fqImport && fqImport instanceof ResolvedImportClassFile) {
- return fqImport.tryFetch(((ResolvedImportClassFile)fqImport).getName());
- }
-
- // use reflection, assume fully qualified class name
-
- if (!unlocatableReflectedClassNames.contains(scheduledClassName)) {
- if (Main.getInstance().isReflectionEnabled()) {
- try {
- Class clazz = Class.forName(scheduledClassName);
- printWarning("Cannot locate class " + scheduledClassName + " on file system, falling back to reflection.");
- ClassDoc result = new ClassDocReflectedImpl(clazz);
- return result;
- }
- catch (Throwable ignore) {
- unlocatableReflectedClassNames.add(scheduledClassName);
- }
- }
- else {
- unlocatableReflectedClassNames.add(scheduledClassName);
- }
- }
-
- if (null == resolvedScheduledClassName) {
- resolvedScheduledClassName = scheduledClassName;
- }
- if (!unlocatableReportedSet.contains(resolvedScheduledClassName)) {
- unlocatableReportedSet.add(resolvedScheduledClassName);
- printWarning("Cannot locate class " + resolvedScheduledClassName + " referenced in class " + scheduledClassContext.qualifiedName());
- }
- return null;
- }
-
- private Set unlocatableReflectedClassNames = new HashSet();
-
- public static boolean recursiveClasses = false;
-
- public void addSpecifiedPackageName(String packageName) {
- specifiedPackageNames.add(packageName);
- }
-
- public void addSpecifiedSourceFile(File sourceFile) {
- specifiedSourceFiles.add(sourceFile);
- }
-
- public boolean hasSpecifiedPackagesOrClasses() {
- return !specifiedPackageNames.isEmpty()
- || !specifiedSourceFiles.isEmpty();
- }
-
- public void setOptions(String[][] customOptionArr) {
- this.customOptionArr = customOptionArr;
- }
-
- public void setSourcePath(List sourcePath) {
- this.sourcePath = sourcePath;
- }
-
- public void finalize() throws Throwable {
- super.finalize();
- }
-
- public void flush()
- {
- try {
- rawCommentCache.close();
- }
- catch (IOException e) {
- printError("Cannot close raw comment cache");
- }
-
- rawCommentCache = null;
- customOptionArr = null;
- specifiedPackageNames = null;
- classesList = null;
- classDocMap = null;
- packageDocMap = null;
- classes = null;
- specifiedClasses = null;
- specifiedPackages = null;
- scheduledClasses = null;
- sourcePath = null;
- parser = null;
- unlocatableReportedSet = null;
- inaccessibleReportedSet = null;
- }
-
- public void setSourceEncoding(String sourceEncoding)
- {
- this.sourceEncoding = sourceEncoding;
- }
-
- public RootDocImpl()
- {
- super(null);
- }
-
- public static String readHtmlBody(File file)
- throws IOException
- {
- FileReader fr=new FileReader(file);
- long size = file.length();
- char[] packageDocBuf=new char[(int)(size)];
- int index = 0;
- int i = fr.read(packageDocBuf, index, (int)size);
- while (i > 0) {
- index += i;
- size -= i;
- i = fr.read(packageDocBuf, index, (int)size);
- }
- fr.close();
-
- // We only need the part between the begin and end body tag.
- String html = new String(packageDocBuf);
- int start = html.indexOf("");
- if (end == -1)
- end = html.indexOf("");
- if (start != -1 && end != -1) {
- // Start is end of body tag.
- start = html.indexOf('>', start) + 1;
- if (start != -1 && start < end)
- html = html.substring(start, end);
- }
- return html.trim();
- }
-
- public Parser getParser()
- {
- return parser;
- }
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/SeeTagImpl.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/SeeTagImpl.java
deleted file mode 100644
index 12e2256..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/SeeTagImpl.java
+++ /dev/null
@@ -1,215 +0,0 @@
-/* gnu.classpath.tools.gjdoc.SeeTagImpl
- Copyright (C) 2001 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a 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 gnu.classpath.tools.gjdoc;
-
-import com.sun.javadoc.*;
-import java.util.*;
-import java.text.*;
-
-public class SeeTagImpl extends AbstractTagImpl implements SeeTag {
-
- protected String reference;
- private String referencedClassName;
- private String referencedMemberName;
- private ClassDoc referencedClass;
- private MemberDoc referencedMember;
- private PackageDoc referencedPackage;
- private String label;
- private ClassDocImpl contextClass;
-
- public SeeTagImpl(String text, ClassDocImpl contextClass) {
- super(text);
- this.contextClass=contextClass;
- }
-
- public void resolve() {
-
- super.resolve();
-
- text = text.trim();
-
- if (text.startsWith("<") || text.startsWith("\"")) {
- label = text;
- return;
- }
-
- int labelNdx=text.indexOf(';');
- if (labelNdx>=0) {
- label="";
- return;
- }
-
- for (int i=0; i= 0) {
- labelNdx = i;
- break;
- }
- }
-
- int openParenNdx = text.indexOf('(');
- if (openParenNdx >= 0 && openParenNdx < labelNdx) {
- labelNdx=text.indexOf(')', openParenNdx);
- if (labelNdx >= 0) {
- ++ labelNdx;
- }
- }
-
- if (labelNdx<0 || labelNdx>=text.length()) {
- reference=text.trim();
- label="";
- }
- else {
- reference=text.substring(0,labelNdx).trim();
- label=text.substring(labelNdx).trim();
- }
-
- int mspecNdx=reference.indexOf('#');
- String referencedFqName;
- if (mspecNdx<0) {
- referencedFqName=reference;
- }
- else {
- referencedFqName=reference.substring(0,mspecNdx);
- referencedMemberName=reference.substring(mspecNdx+1);
- }
-
- // the following is in contradiction to the api docs, but
- // conform to sun javadoc: return fully qualified classname
- // with referencedClassName().
- if (referencedFqName.trim().length()>0) {
- referencedClassName=referencedFqName;
- if (contextClass==null)
- referencedClass=Main.getRootDoc().classNamed(referencedFqName);
- else
- referencedClass=contextClass.findClass(referencedFqName);
- }
- else {
- referencedClassName="";
- referencedClass=contextClass;
- }
-
- if (referencedClass==null) {
- referencedClass = Main.getRootDoc().classNamed("java.lang." + referencedFqName);
- }
-
- if (referencedClass!=null && !referencedClass.isIncluded()) referencedClass=null;
-
- if (referencedClass!=null) {
- referencedPackage=referencedClass.containingPackage();
- referencedClassName=referencedClass.qualifiedName();
-
- if (referencedMemberName!=null) {
-
- if (referencedMemberName.indexOf('(')<0) {
- referencedMember=((ClassDocImpl)referencedClass).findFieldRec(referencedMemberName);
- if (null == referencedMember) {
- MethodDoc[] methods = ((ClassDocImpl)referencedClass).methods();
- for (int i=0; i
- *
- * Consider the following problem:
- *
- * public class A {
- * public static void foo() {
- * long[] hugeArray = new long[1000000]; // takes around 8 MB
- * // ... fill hugeArray with some information ...
- * bar(hugeArray);
- * // ... hugeArray is no more required at this point
- * }
- * public static void bar(long[] arr) {
- * // ... process contents of arr ...
- * arr = null;
- * System.gc(); // NOTE: will not collect arr!
- * // ... do something memory-intensive where arr is not needed
- * }
- * }
- *
- *
- * In method bar(), the array cannot be garbage
- * collected because the local variable hugeArray in
- * method foo() still holds a reference to the array.
- *
- *
- * When calling bar(new long[1000000]); in
- * arr the array can be collected in
- * bar(), but that way it can't be initialized in
- * foo(). A local variable is needed for
- * initialization, but the variable can't be cleared before it is
- * passed to bar()!
- *
- * TemporaryStore is the solution for this
- * dilemma. The modified method foo() which uses a
- * TemporaryStore object would look like this:
- *
- *
- * public static void foo() {
- * long[] hugeArray = new long[1000000]; // takes around 7 MB
- * // ... fill hugeArray with some very important information ...
- * TemporaryStore tstore = new TemporaryStore(hugeArray);
- * hugeArray = null;
- * bar((long[])tstore.getAndClear());
- * }
- *
- *
- * When control flow is transferred to bar(),
- * foo() will hold no more references to the array
- * and so it can be garbage collected in bar().
- *
- */
-public class TemporaryStore {
-
- private Object storedObject;
-
- /**
- * Temporarily store the given object for passing it to a
- * different method.
- *
- * The method constructing a new TemporaryStore object should
- * clear all other references to the stored object, so that
- * this TemporaryStore is the only object referencing it.
- *
- * @param storedObject the object to store temporarily
- *
- */
- public TemporaryStore(Object storedObject) {
- this.storedObject = storedObject;
- }
-
- /**
- * Return the stored object after clearing the reference to it.
- *
- *
- * When the user of this class followed the recommendations in
- * the documentation of @link{TemporaryStore(Object)}, the
- * returned reference will be the only reference to the stored
- * object after this method returns. If the returned reference
- * is passed in a method call, the called method will hold the
- * only reference to the stored object and can release it by
- * nulling the corresponding parameter.
- *
- * @return the object which was passed to the constructor.
- *
- */
- public Object getAndClear() {
- Object rc = this.storedObject;
- this.storedObject = null;
- return rc;
- }
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/TextTagImpl.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/TextTagImpl.java
deleted file mode 100644
index 812fd2f..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/TextTagImpl.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/* gnu.classpath.tools.gjdoc.TextTagImpl
- Copyright (C) 2001 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a 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 gnu.classpath.tools.gjdoc;
-
-import com.sun.javadoc.*;
-import java.util.*;
-
-public class TextTagImpl extends AbstractTagImpl implements Tag {
-
- TextTagImpl(String text) {
- super(text);
- }
-
- public Tag[] firstSentenceTags() { return new Tag[]{this}; }
- public Tag[] inlineTags() { return new Tag[]{this}; }
- public String kind() { return "Text"; }
-
- public String toString() { return "TextTagImpl{text=" + text + "}"; }
-
- public String getText() { return text; }
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ThrowsTagImpl.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ThrowsTagImpl.java
deleted file mode 100644
index e4e7bbf..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ThrowsTagImpl.java
+++ /dev/null
@@ -1,105 +0,0 @@
-/* gnu.classpath.tools.gjdoc.ThrowsTagImpl
- Copyright (C) 2001 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a 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 gnu.classpath.tools.gjdoc;
-
-import com.sun.javadoc.*;
-import java.util.*;
-import java.text.*;
-
-public class ThrowsTagImpl extends AbstractTagImpl implements ThrowsTag {
-
- private ClassDoc exception;
- private String exceptionName;
- private String exceptionComment;
-
- public ThrowsTagImpl(String text,
- ClassDocImpl contextClass,
- MemberDocImpl contextMember) {
- super(text);
-
- char[] textarr=text.toCharArray();
- int i=0;
- for (; i= 0 || typeName.indexOf(']') >= 0) {
- throw new RuntimeException("Typename must not contain dimension information.");
- }
- }
-
- public ClassDoc asClassDoc() {
-
- if (this instanceof ClassDoc)
- return ((ClassDocImpl)(ClassDoc)this).getBaseClassDoc();
- else
- return null;
- }
-
- public String typeName() { return typeName; }
-
- public String qualifiedTypeName() { return (packageName!=null)?(packageName+"."+typeName):(typeName); }
-
- public String dimension() { return dimension; }
- public void setDimension(String dimension) { this.dimension = dimension; }
-
- public String toString() { return "Type{"+qualifiedTypeName()+dimension()+"}"; }
-
- public Object clone() throws CloneNotSupportedException {
- return super.clone();
- }
-
- public boolean isPrimitive()
- {
- return null == packageName && primitiveNames.contains(typeName);
- }
-
- private static final Set primitiveNames;
- static {
- Set _primitiveNames = new HashSet();
- _primitiveNames.add("boolean");
- _primitiveNames.add("char");
- _primitiveNames.add("byte");
- _primitiveNames.add("short");
- _primitiveNames.add("int");
- _primitiveNames.add("long");
- _primitiveNames.add("float");
- _primitiveNames.add("double");
- primitiveNames = Collections.unmodifiableSet(_primitiveNames);
- }
-
- public TypeVariable asTypeVariable()
- {
- if (this instanceof TypeVariable)
- return (TypeVariable) this;
- else
- return null;
- }
-
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/TypeVariableImpl.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/TypeVariableImpl.java
deleted file mode 100644
index 08a2366..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/TypeVariableImpl.java
+++ /dev/null
@@ -1,108 +0,0 @@
-/* gnu.classpath.tools.gjdoc.TypeVariableImpl
- 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., 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 gnu.classpath.tools.gjdoc;
-
-import com.sun.javadoc.ProgramElementDoc;
-import com.sun.javadoc.Type;
-import com.sun.javadoc.TypeVariable;
-
-import java.util.List;
-
-public class TypeVariableImpl
- extends TypeImpl
- implements TypeVariable, WritableType
-{
-
- /**
- * The bounds of this particular type variable.
- */
- Type[] bounds;
-
- /**
- * The owning program element of this type variable.
- */
- ProgramElementDoc owner;
-
- /**
- * Constructs a new type variable with the supplied name and owner.
- *
- * @param packageName the name of the package containing the type variable.
- * @param typeName the name of the type variable.
- * @param dimension the dimensions of the type variable (always "").
- * @param owner the owning program element of the type variable.
- */
- TypeVariableImpl(String packageName, String typeName, String dimension,
- ProgramElementDoc owner)
- {
- super(packageName, typeName, dimension);
- this.owner = owner;
- }
-
- /**
- * Set the bounds to the contents of the supplied list.
- *
- * @param parsedBounds a list of type bounds.
- */
- void setBounds(List parsedBounds)
- {
- bounds = (Type[]) parsedBounds.toArray(new Type[parsedBounds.size()]);
- }
-
- /**
- * Returns the bounds of this type variable.
- *
- * @return the bounds of the variable.
- */
- public Type[] bounds()
- {
- return bounds;
- }
-
- /**
- * Returns the owning program element for this type variable.
- *
- * @return the owning program element, whether a class, interface,
- * constructor or method.
- */
- public ProgramElementDoc owner()
- {
- return owner;
- }
-
-
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ValueTagImpl.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ValueTagImpl.java
deleted file mode 100644
index 024594c..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ValueTagImpl.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/* gnu.classpath.tools.gjdoc.ValueTagImpl
- Copyright (C) 2001 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a 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 gnu.classpath.tools.gjdoc;
-
-import com.sun.javadoc.*;
-import java.util.*;
-import java.text.*;
-
-public class ValueTagImpl extends SeeTagImpl {
-
- public ValueTagImpl(String _text, ClassDocImpl contextClass) {
- super(_text, contextClass);
- }
-
- public String name() { return "@value"; }
-
- public Tag[] firstSentenceTags() {
- return inlineTags();
- }
-
- public Tag[] inlineTags() {
- if (null != reference && reference.trim().length() > 0) {
- return new Tag[] { new TextTagImpl(reference) };
- }
- else {
- return new Tag[0];
- }
- }
-
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/WritableType.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/WritableType.java
deleted file mode 100644
index 39cfb3f..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/WritableType.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/* gnu.classpath.tools.gjdoc.WritableType
- Copyright (C) 2001 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a 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 gnu.classpath.tools.gjdoc;
-
-public interface WritableType extends Cloneable {
-
- public void setDimension(String dimension);
- public Object clone() throws CloneNotSupportedException;
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/AdditionExpression.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/AdditionExpression.java
deleted file mode 100644
index 82502c4..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/AdditionExpression.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/* gnu.classpath.tools.gjdoc.expr.AdditionExpression
- 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., 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 gnu.classpath.tools.gjdoc.expr;
-
-class AdditionExpression
- extends BinaryComputationExpression
-{
- public AdditionExpression(Expression left, Expression right)
- {
- super(left, right);
- }
-
- protected double compute(double leftValue, double rightValue)
- {
- return leftValue + rightValue;
- }
-
- protected float compute(float leftValue, float rightValue)
- {
- return leftValue + rightValue;
- }
-
- protected long compute(long leftValue, long rightValue)
- {
- return leftValue + rightValue;
- }
-
- protected int compute(int leftValue, int rightValue)
- {
- return leftValue + rightValue;
- }
-
- public ConstantExpression evaluate(Context context)
- throws IllegalExpressionException
- {
- ConstantExpression leftValue = left.evaluate(context);
- ConstantExpression rightValue = right.evaluate(context);
-
- if (Type.STRING == leftValue.getType()
- || Type.STRING == rightValue.getType()) {
-
- return new ConstantString(leftValue.asObject().toString()
- + rightValue.asObject().toString());
- }
- else {
- return super.evaluate(leftValue, rightValue);
- }
-
- }
-
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/AndExpression.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/AndExpression.java
deleted file mode 100644
index ac80772..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/AndExpression.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/* gnu.classpath.tools.gjdoc.expr.AndExpression
- 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., 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 gnu.classpath.tools.gjdoc.expr;
-
-class AndExpression
- extends BinaryBitwiseExpression
-{
- public AndExpression(Expression left, Expression right)
- {
- super(left, right);
- }
-
- protected long compute(long leftValue, long rightValue)
- {
- return leftValue & rightValue;
- }
-
- protected int compute(int leftValue, int rightValue)
- {
- return leftValue & rightValue;
- }
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/BinaryBitwiseExpression.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/BinaryBitwiseExpression.java
deleted file mode 100644
index 3c44ce7..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/BinaryBitwiseExpression.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/* gnu.classpath.tools.gjdoc.expr.BinaryBitwiseExpression
- 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., 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 gnu.classpath.tools.gjdoc.expr;
-
-abstract class BinaryBitwiseExpression
- extends BinaryExpression
-{
- protected BinaryBitwiseExpression(Expression left, Expression right)
- {
- super(left, right);
- }
-
- public ConstantExpression evaluate(Context context)
- throws IllegalExpressionException
- {
- ConstantExpression leftValue = left.evaluate(context);
- ConstantExpression rightValue = right.evaluate(context);
-
- if (Type.LONG == leftValue.getType()
- || Type.LONG == rightValue.getType()) {
-
- return new ConstantLong(compute(leftValue.asNumber().longValue(),
- rightValue.asNumber().longValue()));
- }
- else {
- return new ConstantInteger(compute(leftValue.asNumber().intValue(),
- rightValue.asNumber().intValue()));
- }
- }
-
- protected abstract long compute(long leftValue, long rightValue);
- protected abstract int compute(int leftValue, int rightValue);
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/BinaryComputationExpression.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/BinaryComputationExpression.java
deleted file mode 100644
index 15d016e..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/BinaryComputationExpression.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/* gnu.classpath.tools.gjdoc.expr.BinaryComputationExpression
- 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., 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 gnu.classpath.tools.gjdoc.expr;
-
-abstract class BinaryComputationExpression
- extends BinaryExpression
-{
- protected BinaryComputationExpression(Expression left, Expression right)
- {
- super(left, right);
- }
-
- public ConstantExpression evaluate(Context context)
- throws IllegalExpressionException
- {
- ConstantExpression leftValue = left.evaluate(context);
- ConstantExpression rightValue = right.evaluate(context);
-
- return evaluate(leftValue, rightValue);
- }
-
- protected ConstantExpression evaluate(ConstantExpression leftValue,
- ConstantExpression rightValue)
- throws IllegalExpressionException
- {
- if (Type.DOUBLE == leftValue.getType()
- || Type.DOUBLE == rightValue.getType()) {
-
- return new ConstantDouble(compute(leftValue.asNumber().doubleValue(),
- rightValue.asNumber().doubleValue()));
- }
- else if (Type.FLOAT == leftValue.getType()
- || Type.FLOAT == rightValue.getType()) {
-
- return new ConstantFloat(compute(leftValue.asNumber().floatValue(),
- rightValue.asNumber().floatValue()));
- }
- else if (Type.LONG == leftValue.getType()
- || Type.LONG == rightValue.getType()) {
-
- return new ConstantLong(compute(leftValue.asNumber().longValue(),
- rightValue.asNumber().longValue()));
- }
- else if (leftValue.isNumber() && rightValue.isNumber()) {
- return new ConstantInteger(compute(leftValue.asNumber().intValue(),
- rightValue.asNumber().intValue()));
- }
- else {
- throw new IllegalExpressionException("Operator ? cannot be applied to " + leftValue.getType() + "," + rightValue.getType());
- }
- }
-
- protected abstract double compute(double leftValue, double rightValue);
- protected abstract float compute(float leftValue, float rightValue);
- protected abstract long compute(long leftValue, long rightValue);
- protected abstract int compute(int leftValue, int rightValue);
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/BinaryEqualityExpression.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/BinaryEqualityExpression.java
deleted file mode 100644
index 1b37c23..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/BinaryEqualityExpression.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/* gnu.classpath.tools.gjdoc.expr.BinaryEqualityExpression
- 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., 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 gnu.classpath.tools.gjdoc.expr;
-
-abstract class BinaryEqualityExpression
- extends BinaryExpression
-{
- protected BinaryEqualityExpression(Expression left, Expression right)
- {
- super(left, right);
- }
-
- public ConstantExpression evaluate(Context context)
- throws IllegalExpressionException
- {
- ConstantExpression leftValue = left.evaluate(context);
- ConstantExpression rightValue = right.evaluate(context);
-
- if (Type.DOUBLE == leftValue.getType()
- || Type.DOUBLE == rightValue.getType()) {
-
- return new ConstantBoolean(compute(leftValue.asNumber().doubleValue(),
- rightValue.asNumber().doubleValue()));
- }
- else if (Type.FLOAT == leftValue.getType()
- || Type.FLOAT == rightValue.getType()) {
-
- return new ConstantBoolean(compute(leftValue.asNumber().floatValue(),
- rightValue.asNumber().floatValue()));
- }
- else if (Type.LONG == leftValue.getType()
- || Type.LONG == rightValue.getType()) {
-
- return new ConstantBoolean(compute(leftValue.asNumber().longValue(),
- rightValue.asNumber().longValue()));
- }
- else if (Type.BOOLEAN == leftValue.getType()
- && Type.BOOLEAN == rightValue.getType()) {
-
- return new ConstantBoolean(compute(((ConstantBoolean)leftValue).booleanValue(),
- ((ConstantBoolean)rightValue).booleanValue()));
- }
- else {
- return new ConstantBoolean(compute(leftValue.asNumber().intValue(),
- rightValue.asNumber().intValue()));
- }
- }
-
- protected abstract boolean compute(double leftValue, double rightValue);
- protected abstract boolean compute(float leftValue, float rightValue);
- protected abstract boolean compute(long leftValue, long rightValue);
- protected abstract boolean compute(int leftValue, int rightValue);
- protected abstract boolean compute(boolean leftValue, boolean rightValue);
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/BinaryExpression.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/BinaryExpression.java
deleted file mode 100644
index 557b514..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/BinaryExpression.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/* gnu.classpath.tools.gjdoc.expr.BinaryExpression
- 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., 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 gnu.classpath.tools.gjdoc.expr;
-
-abstract class BinaryExpression
- implements Expression
-{
- protected Expression left;
- protected Expression right;
-
- protected BinaryExpression(Expression left, Expression right)
- {
- this.left = left;
- this.right = right;
- }
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/BinaryLogicalExpression.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/BinaryLogicalExpression.java
deleted file mode 100644
index 7fa5186..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/BinaryLogicalExpression.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/* gnu.classpath.tools.gjdoc.expr.BinaryLogicalExpression
- 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., 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 gnu.classpath.tools.gjdoc.expr;
-
-abstract class BinaryLogicalExpression
- extends BinaryExpression
-{
- protected BinaryLogicalExpression(Expression left, Expression right)
- {
- super(left, right);
- }
-
- public ConstantExpression evaluate(Context context)
- throws IllegalExpressionException
- {
- ConstantExpression leftValue = left.evaluate(context);
- ConstantExpression rightValue = right.evaluate(context);
-
- if (leftValue.getType() != Type.BOOLEAN || rightValue.getType() != Type.BOOLEAN) {
- throw new IllegalExpressionException("logical expression expects boolean subexpressions");
- }
- else {
- return new ConstantBoolean(compute(((ConstantBoolean)leftValue).booleanValue(),
- ((ConstantBoolean)rightValue).booleanValue()));
- }
- }
-
- protected abstract boolean compute(boolean leftValue, boolean rightValue);
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/BinaryRelationExpression.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/BinaryRelationExpression.java
deleted file mode 100644
index f6ef45c..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/BinaryRelationExpression.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/* gnu.classpath.tools.gjdoc.expr.BinaryRelationExpression
- 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., 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 gnu.classpath.tools.gjdoc.expr;
-
-abstract class BinaryRelationExpression
- extends BinaryExpression
-{
- protected BinaryRelationExpression(Expression left, Expression right)
- {
- super(left, right);
- }
-
- public ConstantExpression evaluate(Context context)
- throws IllegalExpressionException
- {
- ConstantExpression leftValue = left.evaluate(context);
- ConstantExpression rightValue = right.evaluate(context);
-
- if (Type.DOUBLE == leftValue.getType()
- || Type.DOUBLE == rightValue.getType()) {
-
- return new ConstantBoolean(compute(leftValue.asNumber().doubleValue(),
- rightValue.asNumber().doubleValue()));
- }
- else if (Type.FLOAT == leftValue.getType()
- || Type.FLOAT == rightValue.getType()) {
-
- return new ConstantBoolean(compute(leftValue.asNumber().floatValue(),
- rightValue.asNumber().floatValue()));
- }
- else if (Type.LONG == leftValue.getType()
- || Type.LONG == rightValue.getType()) {
-
- return new ConstantBoolean(compute(leftValue.asNumber().longValue(),
- rightValue.asNumber().longValue()));
- }
- else {
- return new ConstantBoolean(compute(leftValue.asNumber().intValue(),
- rightValue.asNumber().intValue()));
- }
- }
-
- protected abstract boolean compute(double leftValue, double rightValue);
- protected abstract boolean compute(float leftValue, float rightValue);
- protected abstract boolean compute(long leftValue, long rightValue);
- protected abstract boolean compute(int leftValue, int rightValue);
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/BinaryShiftExpression.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/BinaryShiftExpression.java
deleted file mode 100644
index 32ccea2..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/BinaryShiftExpression.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/* gnu.classpath.tools.gjdoc.expr.BinaryShiftExpression
- 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., 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 gnu.classpath.tools.gjdoc.expr;
-
-abstract class BinaryShiftExpression
- extends BinaryExpression
-{
- protected BinaryShiftExpression(Expression left, Expression right)
- {
- super(left, right);
- }
-
- public ConstantExpression evaluate(Context context)
- throws IllegalExpressionException
- {
- ConstantExpression leftValue = left.evaluate(context);
- ConstantExpression rightValue = right.evaluate(context);
-
- if (Type.LONG == leftValue.getType()) {
- return new ConstantLong(compute(leftValue.asNumber().longValue(),
- rightValue.asNumber().intValue()));
- }
- else {
- return new ConstantInteger(compute(leftValue.asNumber().intValue(),
- rightValue.asNumber().intValue()));
- }
- }
-
- protected abstract long compute(long leftValue, int rightValue);
- protected abstract int compute(int leftValue, int rightValue);
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/BitShiftRightExpression.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/BitShiftRightExpression.java
deleted file mode 100644
index eca1a52..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/BitShiftRightExpression.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/* gnu.classpath.tools.gjdoc.expr.BitShiftRightExpression
- 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., 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 gnu.classpath.tools.gjdoc.expr;
-
-class BitShiftRightExpression
- extends BinaryShiftExpression
-{
- public BitShiftRightExpression(Expression left, Expression right)
- {
- super(left, right);
- }
-
- protected long compute(long leftValue, int rightValue)
- {
- return leftValue >>> rightValue;
- }
-
- protected int compute(int leftValue, int rightValue)
- {
- return leftValue >>> rightValue;
- }
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/CircularExpressionException.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/CircularExpressionException.java
deleted file mode 100644
index a9bfacc..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/CircularExpressionException.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/* gnu.classpath.tools.gjdoc.expr.IllegalExpressionException
- 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., 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 gnu.classpath.tools.gjdoc.expr;
-
-public class CircularExpressionException
- extends IllegalExpressionException
-{
- public CircularExpressionException(String message)
- {
- super(message);
- }
-
- public CircularExpressionException(Throwable cause)
- {
- super(cause);
- }
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConditionalExpression.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConditionalExpression.java
deleted file mode 100644
index d9532ef..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConditionalExpression.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/* gnu.classpath.tools.gjdoc.expr.ConditionalExpression
- 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., 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 gnu.classpath.tools.gjdoc.expr;
-
-class ConditionalExpression
- implements Expression
-{
- private Expression condition;
- private Expression ifTrue;
- private Expression ifFalse;
-
- ConditionalExpression(Expression condition, Expression ifTrue, Expression ifFalse)
- {
- this.condition = condition;
- this.ifTrue = ifTrue;
- this.ifFalse = ifFalse;
- }
-
- public ConstantExpression evaluate(Context context)
- throws IllegalExpressionException
- {
- ConstantExpression conditionValue = condition.evaluate(context);
- ConstantExpression ifTrueValue = ifTrue.evaluate(context);
- ConstantExpression ifFalseValue = ifFalse.evaluate(context);
-
- if (Type.BOOLEAN != conditionValue.getType()) {
- throw new IllegalExpressionException("condition must be boolean");
- }
- else {
- boolean cond = ((ConstantBoolean)conditionValue).booleanValue();
- if (cond) {
- return ifTrueValue;
- }
- else {
- return ifFalseValue;
- }
- }
- }
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantBoolean.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantBoolean.java
deleted file mode 100644
index 83faf1f..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantBoolean.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/* gnu.classpath.tools.gjdoc.expr.ConstantBoolean
- 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., 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 gnu.classpath.tools.gjdoc.expr;
-
-class ConstantBoolean
- extends ConstantExpression
-{
- private boolean value;
-
- public ConstantBoolean(String stringValue)
- {
- this.value = "true".equals(stringValue);
- }
-
- public ConstantBoolean(boolean booleanValue)
- {
- this.value = booleanValue;
- }
-
- public boolean booleanValue()
- {
- return value;
- }
-
- public Type getType()
- {
- return Type.BOOLEAN;
- }
-
- public Number asNumber()
- {
- return null;
- }
-
- public boolean isNumber()
- {
- return true;
- }
-
- public Object asObject()
- {
- return new Boolean(value);
- }
-
- public String toString()
- {
- return Boolean.toString(value);
- }
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantByte.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantByte.java
deleted file mode 100644
index e206e56..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantByte.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/* gnu.classpath.tools.gjdoc.expr.ConstantByte
- 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., 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 gnu.classpath.tools.gjdoc.expr;
-
-class ConstantByte
- extends ConstantExpression
-{
- private byte value;
-
- public ConstantByte(byte byteValue)
- {
- this.value = byteValue;
- }
-
- public Type getType()
- {
- return Type.BYTE;
- }
-
- public Number asNumber()
- {
- return new Byte(value);
- }
-
- public boolean isNumber()
- {
- return true;
- }
-
- public Object asObject()
- {
- return asNumber();
- }
-
- public String toString()
- {
- return Byte.toString(value);
- }
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantChar.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantChar.java
deleted file mode 100644
index 3cbeac1..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantChar.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/* gnu.classpath.tools.gjdoc.expr.ConstantChar
- 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., 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 gnu.classpath.tools.gjdoc.expr;
-
-class ConstantChar
- extends ConstantExpression
-{
- private char value;
-
- public ConstantChar(String stringValue)
- {
- this.value = stringValue.charAt(1); // FIXME
- if (value == '\\') {
- switch (stringValue.charAt(2)) {
- case 'n': value = '\n'; break;
- case 't': value = '\t'; break;
- case 'f': value = '\f'; break;
- case 'r': value = '\r'; break;
- case 'b': value = '\b'; break;
- case 'u':
- {
- String stringVal = stringValue.substring(3, stringValue.length() - 1);
- /*
- while (stringVal.length() > 1 && stringVal.charAt(0) == '0') {
- stringVal = stringVal.substring(1);
- }
- */
- value = (char)Integer.parseInt(stringVal, 16); break;
- }
- }
- }
- }
-
- public ConstantChar(char charValue)
- {
- this.value = charValue;
- }
-
- public Type getType()
- {
- return Type.CHAR;
- }
-
- public Number asNumber()
- {
- return new Integer((int)value);
- }
-
- public Object asObject()
- {
- return new Character(value);
- }
-
- public boolean isNumber()
- {
- return true;
- }
-
- public String toString()
- {
- return Character.toString(value);
- }
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantDouble.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantDouble.java
deleted file mode 100644
index 5faa5a1..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantDouble.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/* gnu.classpath.tools.gjdoc.expr.ConstantDouble
- 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., 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 gnu.classpath.tools.gjdoc.expr;
-
-class ConstantDouble
- extends ConstantExpression
-{
- private double value;
-
- public ConstantDouble(String stringValue)
- {
- this.value = Double.parseDouble(stringValue);
- }
-
- public ConstantDouble(double doubleValue)
- {
- this.value = doubleValue;
- }
-
- public Type getType()
- {
- return Type.DOUBLE;
- }
-
- public Number asNumber()
- {
- return new Double(value);
- }
-
- public boolean isNumber()
- {
- return true;
- }
-
- public Object asObject()
- {
- return asNumber();
- }
-
- public String toString()
- {
- return Double.toString(value);
- }
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantExpression.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantExpression.java
deleted file mode 100644
index 93923e6..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantExpression.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/* gnu.classpath.tools.gjdoc.expr.ConstantExpression
- 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., 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 gnu.classpath.tools.gjdoc.expr;
-
-abstract class ConstantExpression
- implements Expression
-{
- public abstract Type getType();
- public abstract Number asNumber();
- public abstract Object asObject();
- public abstract boolean isNumber();
-
- public ConstantExpression evaluate(Context context)
- {
- return this;
- }
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantFloat.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantFloat.java
deleted file mode 100644
index 4689550..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantFloat.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/* gnu.classpath.tools.gjdoc.expr.ConstantFloat
- 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., 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 gnu.classpath.tools.gjdoc.expr;
-
-class ConstantFloat
- extends ConstantExpression
-{
- private float value;
-
- public ConstantFloat(String stringValue)
- {
- this.value = Float.parseFloat(stringValue);
- }
-
- public ConstantFloat(float floatValue)
- {
- this.value = floatValue;
- }
-
- public Type getType()
- {
- return Type.FLOAT;
- }
-
- public Number asNumber()
- {
- return new Float(value);
- }
-
- public boolean isNumber()
- {
- return true;
- }
-
- public Object asObject()
- {
- return asNumber();
- }
-
- public String toString()
- {
- return "ConstantFloat{" + value + "}";
- }
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantInteger.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantInteger.java
deleted file mode 100644
index 10804a6..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantInteger.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/* gnu.classpath.tools.gjdoc.expr.ConstantInteger
- 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., 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 gnu.classpath.tools.gjdoc.expr;
-
-class ConstantInteger
- extends ConstantExpression
-{
- private long value;
-
- public ConstantInteger(String stringValue)
- {
- this.value = Evaluator.parseLong(stringValue);
- }
-
- public ConstantInteger(int integerValue)
- {
- this.value = integerValue;
- }
-
- public Type getType()
- {
- return Type.INTEGER;
- }
-
- public Number asNumber()
- {
- return new Long(value);
- }
-
- public boolean isNumber()
- {
- return true;
- }
-
- public Object asObject()
- {
- return new Integer((int)value);
- }
-
- public String toString()
- {
- return Long.toString(value);
- }
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantLong.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantLong.java
deleted file mode 100644
index a0a2f4b..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantLong.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/* gnu.classpath.tools.gjdoc.expr.ConstantLong
- 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., 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 gnu.classpath.tools.gjdoc.expr;
-
-class ConstantLong
- extends ConstantExpression
-{
- private long value;
-
- public ConstantLong(String stringValue)
- {
- if ('l' == Character.toLowerCase(stringValue.charAt(stringValue.length() - 1))) {
- this.value = Evaluator.parseLong(stringValue.substring(0, stringValue.length() - 1));
- }
- else {
- this.value = Evaluator.parseInt(stringValue.substring(0, stringValue.length() - 1));
- }
- }
-
- public ConstantLong(long longValue)
- {
- this.value = longValue;
- }
-
- public Type getType()
- {
- return Type.LONG;
- }
-
- public Number asNumber()
- {
- return new Long(value);
- }
-
- public boolean isNumber()
- {
- return true;
- }
-
- public Object asObject()
- {
- return asNumber();
- }
-
- public String toString()
- {
- return Long.toString(value);
- }
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantNull.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantNull.java
deleted file mode 100644
index c27b10b..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantNull.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/* gnu.classpath.tools.gjdoc.expr.ConstantNull
- 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., 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 gnu.classpath.tools.gjdoc.expr;
-
-class ConstantNull
- extends ConstantExpression
-{
- public ConstantNull()
- {
- }
-
- public Type getType()
- {
- return Type.NULL;
- }
-
- public Number asNumber()
- {
- return null;
- }
-
- public boolean isNumber()
- {
- return false;
- }
-
- public Object asObject()
- {
- return null;
- }
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantShort.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantShort.java
deleted file mode 100644
index 5f4f00e..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantShort.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/* gnu.classpath.tools.gjdoc.expr.ConstantShort
- 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., 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 gnu.classpath.tools.gjdoc.expr;
-
-class ConstantShort
- extends ConstantExpression
-{
- private short value;
-
- public ConstantShort(short shortValue)
- {
- this.value = shortValue;
- }
-
- public Type getType()
- {
- return Type.SHORT;
- }
-
- public Number asNumber()
- {
- return new Short(value);
- }
-
- public boolean isNumber()
- {
- return true;
- }
-
- public Object asObject()
- {
- return asNumber();
- }
-
- public String toString()
- {
- return Short.toString(value);
- }
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantString.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantString.java
deleted file mode 100644
index 4e9ecde..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantString.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/* gnu.classpath.tools.gjdoc.expr.ConstantString
- 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., 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 gnu.classpath.tools.gjdoc.expr;
-
-class ConstantString
- extends ConstantExpression
-{
- private String value;
-
- public ConstantString(String value)
- {
- this.value = value;
- }
-
- public Type getType()
- {
- return Type.STRING;
- }
-
- public Number asNumber()
- {
- return null;
- }
-
- public boolean isNumber()
- {
- return false;
- }
-
- public Object asObject()
- {
- return value;
- }
-
- public String toString()
- {
- return value;
- }
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/Context.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/Context.java
deleted file mode 100644
index f6d1ebc..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/Context.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/* gnu.classpath.tools.gjdoc.expr.Context
- 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., 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 gnu.classpath.tools.gjdoc.expr;
-
-import java.util.Set;
-
-class Context
-{
- private EvaluatorEnvironment evaluatorEnvironment;
- private Set visitedFields;
-
- Context(EvaluatorEnvironment evaluatorEnvironment, Set visitedFields)
- {
- this.evaluatorEnvironment = evaluatorEnvironment;
- this.visitedFields = visitedFields;
- }
-
- public EvaluatorEnvironment getEvaluatorEnvironment()
- {
- return evaluatorEnvironment;
- }
-
- public Set getVisitedFields()
- {
- return visitedFields;
- }
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/DivisionExpression.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/DivisionExpression.java
deleted file mode 100644
index 85206d4..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/DivisionExpression.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/* gnu.classpath.tools.gjdoc.expr.DivisionExpression
- 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., 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 gnu.classpath.tools.gjdoc.expr;
-
-class DivisionExpression
- extends BinaryComputationExpression
-{
- public DivisionExpression(Expression left, Expression right)
- {
- super(left, right);
- }
-
- protected double compute(double leftValue, double rightValue)
- {
- return leftValue / rightValue;
- }
-
- protected float compute(float leftValue, float rightValue)
- {
- return leftValue / rightValue;
- }
-
- protected long compute(long leftValue, long rightValue)
- {
- return leftValue / rightValue;
- }
-
- protected int compute(int leftValue, int rightValue)
- {
- return leftValue / rightValue;
- }
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/EqualExpression.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/EqualExpression.java
deleted file mode 100644
index d7385fd..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/EqualExpression.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/* gnu.classpath.tools.gjdoc.expr.EqualExpression
- 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., 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 gnu.classpath.tools.gjdoc.expr;
-
-class EqualExpression
- extends BinaryEqualityExpression
-{
- public EqualExpression(Expression left, Expression right)
- {
- super(left, right);
- }
-
- protected boolean compute(double leftValue, double rightValue)
- {
- return leftValue == rightValue;
- }
-
- protected boolean compute(float leftValue, float rightValue)
- {
- return leftValue == rightValue;
- }
-
- protected boolean compute(long leftValue, long rightValue)
- {
- return leftValue == rightValue;
- }
-
- protected boolean compute(int leftValue, int rightValue)
- {
- return leftValue == rightValue;
- }
-
- protected boolean compute(boolean leftValue, boolean rightValue)
- {
- return leftValue == rightValue;
- }
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/Evaluator.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/Evaluator.java
deleted file mode 100644
index efa8860..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/Evaluator.java
+++ /dev/null
@@ -1,150 +0,0 @@
-/* gnu.classpath.tools.gjdoc.expr.Evaluator
- Copyright (C) 2004, 2012 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 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 gnu.classpath.tools.gjdoc.expr;
-
-import com.sun.javadoc.FieldDoc;
-
-import java.io.StringReader;
-import java.math.BigInteger;
-import antlr.RecognitionException;
-import antlr.TokenStreamException;
-import java.util.Set;
-
-public class Evaluator
-{
- /**
- * Try to evaluate the given Java expression in the context of the
- * given environment.
- *
- * @param expression the Java expression to evaluate. The
- * expression string must not include a terminating semicolon.
- *
- * @param source the FieldDoc (part of) whose constant field value
- * expression is being evaluated. Used to prevent circular
- * references.
- *
- * @param environment callback hook used by the Evaluator to query
- * the value of static fields referenced in the expression.
- *
- * @return a Java object representing the value of the expression,
- * or null if the expression evaluates to
- * null.
- *
- * @throws IllegalExpressionException if the expression is
- * invalid, uses unsupported syntax constructs (e.g. method calls,
- * array access) or references unknown static fields.
- */
- public static Object evaluate(String expression,
- Set visitedFields,
- EvaluatorEnvironment environment)
- throws IllegalExpressionException
- {
- try {
- JavaLexer lexer = new JavaLexer(new StringReader(expression));
- JavaRecognizer recognizer = new JavaRecognizer(lexer);
- Expression e = recognizer.expression();
- ConstantExpression value = e.evaluate(new Context(environment, visitedFields));
- return value.asObject();
- }
- catch (RecognitionException e) {
- throw new IllegalExpressionException(e);
- }
- catch (TokenStreamException e) {
- throw new IllegalExpressionException(e);
- }
- }
-
- static int parseInt(String stringValue)
- {
- int base = 10;
-
- if (stringValue.startsWith("0x")) {
- base = 16;
- stringValue = stringValue.substring(2);
- }
- else if (stringValue.length() > 1 && stringValue.startsWith("0")) {
- base = 8;
- stringValue = stringValue.substring(1);
- }
- while (stringValue.length() > 1 && stringValue.startsWith("0")) {
- stringValue = stringValue.substring(1);
- }
-
- if (10 == base) {
- return Integer.parseInt(stringValue);
- }
- else {
- long result = Long.parseLong(stringValue, base);
-
- if (result > Integer.MAX_VALUE) {
- result -= 0x100000000L;
- }
-
- if (result > Integer.MAX_VALUE) {
- throw new NumberFormatException(result + " > " + Integer.MAX_VALUE);
- }
- else if (result < Integer.MIN_VALUE) {
- throw new NumberFormatException(result + " < " + Integer.MIN_VALUE);
- }
- else {
- return (int)result;
- }
- }
- }
-
- static long parseLong(String stringValue)
- {
- int base = 10;
-
- if (stringValue.startsWith("0x")) {
- base = 16;
- stringValue = stringValue.substring(2);
- }
- else if (stringValue.length() > 1 && stringValue.startsWith("0")) {
- base = 8;
- stringValue = stringValue.substring(1);
- }
- while (stringValue.length() > 1 && stringValue.startsWith("0")) {
- stringValue = stringValue.substring(1);
- }
-
- BigInteger bigInt = new BigInteger(stringValue, base);
- long result = bigInt.longValue();
- return result;
- }
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/EvaluatorEnvironment.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/EvaluatorEnvironment.java
deleted file mode 100644
index cdb1f90..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/EvaluatorEnvironment.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/* gnu.classpath.tools.gjdoc.expr.EvaluatorEnvironment
- Copyright (C) 2004, 2012 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 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 gnu.classpath.tools.gjdoc.expr;
-
-import com.sun.javadoc.FieldDoc;
-
-import java.util.Set;
-
-public interface EvaluatorEnvironment
-{
- public Object getValue(String identifier, Set visitedFields)
- throws IllegalExpressionException, UnknownIdentifierException;
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ExclusiveOrExpression.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ExclusiveOrExpression.java
deleted file mode 100644
index eb992fc..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ExclusiveOrExpression.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/* gnu.classpath.tools.gjdoc.expr.ExclusiveOrExpression
- 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., 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 gnu.classpath.tools.gjdoc.expr;
-
-class ExclusiveOrExpression
- extends BinaryBitwiseExpression
-{
- public ExclusiveOrExpression(Expression left, Expression right)
- {
- super(left, right);
- }
-
- protected long compute(long leftValue, long rightValue)
- {
- return leftValue ^ rightValue;
- }
-
- protected int compute(int leftValue, int rightValue)
- {
- return leftValue ^ rightValue;
- }
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/Expression.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/Expression.java
deleted file mode 100644
index ca1ccc6..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/Expression.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/* gnu.classpath.tools.gjdoc.expr.Expression
- 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., 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 gnu.classpath.tools.gjdoc.expr;
-
-interface Expression
-{
- public ConstantExpression evaluate(Context context)
- throws IllegalExpressionException;
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/GreaterThanExpression.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/GreaterThanExpression.java
deleted file mode 100644
index 995f7ae..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/GreaterThanExpression.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/* gnu.classpath.tools.gjdoc.expr.GreaterThanExpression
- 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., 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 gnu.classpath.tools.gjdoc.expr;
-
-class GreaterThanExpression
- extends BinaryRelationExpression
-{
- public GreaterThanExpression(Expression left, Expression right)
- {
- super(left, right);
- }
-
- protected boolean compute(double leftValue, double rightValue)
- {
- return leftValue > rightValue;
- }
-
- protected boolean compute(float leftValue, float rightValue)
- {
- return leftValue > rightValue;
- }
-
- protected boolean compute(long leftValue, long rightValue)
- {
- return leftValue > rightValue;
- }
-
- protected boolean compute(int leftValue, int rightValue)
- {
- return leftValue > rightValue;
- }
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/GreaterThanOrEqualExpression.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/GreaterThanOrEqualExpression.java
deleted file mode 100644
index 4e7ca4a..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/GreaterThanOrEqualExpression.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/* gnu.classpath.tools.gjdoc.expr.GreaterThanOrEqualExpression
- 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., 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 gnu.classpath.tools.gjdoc.expr;
-
-class GreaterThanOrEqualExpression
- extends BinaryRelationExpression
-{
- public GreaterThanOrEqualExpression(Expression left, Expression right)
- {
- super(left, right);
- }
-
- protected boolean compute(double leftValue, double rightValue)
- {
- return leftValue >= rightValue;
- }
-
- protected boolean compute(float leftValue, float rightValue)
- {
- return leftValue >= rightValue;
- }
-
- protected boolean compute(long leftValue, long rightValue)
- {
- return leftValue >= rightValue;
- }
-
- protected boolean compute(int leftValue, int rightValue)
- {
- return leftValue >= rightValue;
- }
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/IdentifierExpression.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/IdentifierExpression.java
deleted file mode 100644
index 8d25492..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/IdentifierExpression.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/* gnu.classpath.tools.gjdoc.expr.IdentifierExpression
- 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., 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 gnu.classpath.tools.gjdoc.expr;
-
-class IdentifierExpression
- implements Expression
-{
- private String identifier;
-
- public IdentifierExpression(String identifier)
- {
- this.identifier = identifier;
- }
-
- public ConstantExpression evaluate(Context context)
- throws IllegalExpressionException
- {
- Object value = context.getEvaluatorEnvironment().getValue(identifier, context.getVisitedFields());
-
- if (value instanceof Byte) {
- return new ConstantByte(((Byte)value).byteValue());
- }
- else if (value instanceof Short) {
- return new ConstantShort(((Short)value).shortValue());
- }
- else if (value instanceof Integer) {
- return new ConstantInteger(((Integer)value).intValue());
- }
- else if (value instanceof Long) {
- return new ConstantLong(((Long)value).longValue());
- }
- else if (value instanceof Float) {
- return new ConstantFloat(((Float)value).floatValue());
- }
- else if (value instanceof Double) {
- return new ConstantDouble(((Double)value).doubleValue());
- }
- else if (value instanceof Boolean) {
- return new ConstantBoolean(((Boolean)value).booleanValue());
- }
- else if (value instanceof Character) {
- return new ConstantChar(((Character)value).charValue());
- }
- else if (value instanceof String) {
- return new ConstantString((String)value);
- }
- else if (null != value) {
- throw new IllegalExpressionException("Unsupported type " + value.getClass().getName() + " for identifier " + identifier);
- }
- else {
- throw new IllegalExpressionException("Cannot resolve identifier " + identifier);
- }
- }
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/IllegalExpressionException.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/IllegalExpressionException.java
deleted file mode 100644
index 65cd5da..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/IllegalExpressionException.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/* gnu.classpath.tools.gjdoc.expr.IllegalExpressionException
- 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., 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 gnu.classpath.tools.gjdoc.expr;
-
-public class IllegalExpressionException
- extends Exception
-{
- public IllegalExpressionException(String message)
- {
- super(message);
- }
-
- public IllegalExpressionException(Throwable cause)
- {
- super(cause);
- }
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/InclusiveOrExpression.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/InclusiveOrExpression.java
deleted file mode 100644
index 2b02501..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/InclusiveOrExpression.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/* gnu.classpath.tools.gjdoc.expr.InclusiveOrExpression
- 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., 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 gnu.classpath.tools.gjdoc.expr;
-
-class InclusiveOrExpression
- extends BinaryBitwiseExpression
-{
- public InclusiveOrExpression(Expression a, Expression b)
- {
- super(a, b);
- }
-
- protected long compute(long leftValue, long rightValue)
- {
- return leftValue | rightValue;
- }
-
- protected int compute(int leftValue, int rightValue)
- {
- return leftValue | rightValue;
- }
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/LessThanExpression.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/LessThanExpression.java
deleted file mode 100644
index 4e784cd..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/LessThanExpression.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/* gnu.classpath.tools.gjdoc.expr.LessThanExpression
- 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., 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 gnu.classpath.tools.gjdoc.expr;
-
-class LessThanExpression
- extends BinaryRelationExpression
-{
- public LessThanExpression(Expression left, Expression right)
- {
- super(left, right);
- }
-
- protected boolean compute(double leftValue, double rightValue)
- {
- return leftValue < rightValue;
- }
-
- protected boolean compute(float leftValue, float rightValue)
- {
- return leftValue < rightValue;
- }
-
- protected boolean compute(long leftValue, long rightValue)
- {
- return leftValue < rightValue;
- }
-
- protected boolean compute(int leftValue, int rightValue)
- {
- return leftValue < rightValue;
- }
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/LessThanOrEqualExpression.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/LessThanOrEqualExpression.java
deleted file mode 100644
index 803ad5e..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/LessThanOrEqualExpression.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/* gnu.classpath.tools.gjdoc.expr.LessThanOrEqualExpression
- 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., 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 gnu.classpath.tools.gjdoc.expr;
-
-class LessThanOrEqualExpression
- extends BinaryRelationExpression
-{
- public LessThanOrEqualExpression(Expression left, Expression right)
- {
- super(left, right);
- }
-
- protected boolean compute(double leftValue, double rightValue)
- {
- return leftValue <= rightValue;
- }
-
- protected boolean compute(float leftValue, float rightValue)
- {
- return leftValue <= rightValue;
- }
-
- protected boolean compute(long leftValue, long rightValue)
- {
- return leftValue <= rightValue;
- }
-
- protected boolean compute(int leftValue, int rightValue)
- {
- return leftValue <= rightValue;
- }
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/LogicalAndExpression.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/LogicalAndExpression.java
deleted file mode 100644
index 3b04091..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/LogicalAndExpression.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/* gnu.classpath.tools.gjdoc.expr.LogicalAndExpression
- 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., 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 gnu.classpath.tools.gjdoc.expr;
-
-class LogicalAndExpression
- extends BinaryLogicalExpression
-{
- LogicalAndExpression(Expression left, Expression right)
- {
- super(left, right);
- }
-
- protected boolean compute(boolean leftValue, boolean rightValue)
- {
- return leftValue && rightValue;
- }
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/LogicalNotExpression.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/LogicalNotExpression.java
deleted file mode 100644
index 4c7bf70..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/LogicalNotExpression.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/* gnu.classpath.tools.gjdoc.expr.LogicalNotExpression
- 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., 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 gnu.classpath.tools.gjdoc.expr;
-
-class LogicalNotExpression
- extends UnaryExpression
-{
- protected LogicalNotExpression(Expression expr)
- {
- super(expr);
- }
-
- public ConstantExpression evaluate(Context context)
- throws IllegalExpressionException
- {
- ConstantExpression value = expr.evaluate(context);
-
- if (Type.BOOLEAN == value.getType()) {
- return new ConstantBoolean(!((ConstantBoolean)value).booleanValue());
- }
- else {
- throw new IllegalExpressionException("Operator ! cannot be applied to " + value.getType());
- }
- }
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/LogicalOrExpression.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/LogicalOrExpression.java
deleted file mode 100644
index 625a6e5..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/LogicalOrExpression.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/* gnu.classpath.tools.gjdoc.expr.LogicalOrExpression
- 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., 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 gnu.classpath.tools.gjdoc.expr;
-
-class LogicalOrExpression
- extends BinaryLogicalExpression
-{
- LogicalOrExpression(Expression a, Expression b)
- {
- super(a, b);
- }
-
- protected boolean compute(boolean leftValue, boolean rightValue)
- {
- return leftValue || rightValue;
- }
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ModuloExpression.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ModuloExpression.java
deleted file mode 100644
index 6aca379..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ModuloExpression.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/* gnu.classpath.tools.gjdoc.expr.ModuloExpression
- 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., 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 gnu.classpath.tools.gjdoc.expr;
-
-class ModuloExpression
- extends BinaryComputationExpression
-{
- public ModuloExpression(Expression left, Expression right)
- {
- super(left, right);
- }
-
- protected double compute(double leftValue, double rightValue)
- {
- return leftValue % rightValue;
- }
-
- protected float compute(float leftValue, float rightValue)
- {
- return leftValue % rightValue;
- }
-
- protected long compute(long leftValue, long rightValue)
- {
- return leftValue % rightValue;
- }
-
- protected int compute(int leftValue, int rightValue)
- {
- return leftValue % rightValue;
- }
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/MultiplicationExpression.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/MultiplicationExpression.java
deleted file mode 100644
index 3d3071a..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/MultiplicationExpression.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/* gnu.classpath.tools.gjdoc.expr.MultiplicationExpression
- 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., 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 gnu.classpath.tools.gjdoc.expr;
-
-class MultiplicationExpression
- extends BinaryComputationExpression
-{
- public MultiplicationExpression(Expression left, Expression right)
- {
- super(left, right);
- }
-
- protected double compute(double leftValue, double rightValue)
- {
- return leftValue * rightValue;
- }
-
- protected float compute(float leftValue, float rightValue)
- {
- return leftValue * rightValue;
- }
-
- protected long compute(long leftValue, long rightValue)
- {
- return leftValue * rightValue;
- }
-
- protected int compute(int leftValue, int rightValue)
- {
- return leftValue * rightValue;
- }
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/NegateExpression.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/NegateExpression.java
deleted file mode 100644
index 5b66fecd..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/NegateExpression.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/* gnu.classpath.tools.gjdoc.expr.NegateExpression
- 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., 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 gnu.classpath.tools.gjdoc.expr;
-
-class NegateExpression
- extends UnaryExpression
-{
- protected NegateExpression(Expression expr)
- {
- super(expr);
- }
-
- public ConstantExpression evaluate(Context context)
- throws IllegalExpressionException
- {
- ConstantExpression value = expr.evaluate(context);
-
- if (Type.LONG == value.getType()) {
- return new ConstantLong(-value.asNumber().longValue());
- }
- else if (Type.DOUBLE == value.getType()) {
- return new ConstantDouble(-value.asNumber().doubleValue());
- }
- else if (Type.FLOAT == value.getType()) {
- return new ConstantDouble(-value.asNumber().floatValue());
- }
- else {
- return new ConstantInteger(-value.asNumber().intValue());
- }
- }
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/NotEqualExpression.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/NotEqualExpression.java
deleted file mode 100644
index eb49bc0..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/NotEqualExpression.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/* gnu.classpath.tools.gjdoc.expr.NotEqualExpression
- 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., 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 gnu.classpath.tools.gjdoc.expr;
-
-class NotEqualExpression
- extends BinaryEqualityExpression
-{
- public NotEqualExpression(Expression left, Expression right)
- {
- super(left, right);
- }
-
- protected boolean compute(double leftValue, double rightValue)
- {
- return leftValue != rightValue;
- }
-
- protected boolean compute(float leftValue, float rightValue)
- {
- return leftValue != rightValue;
- }
-
- protected boolean compute(long leftValue, long rightValue)
- {
- return leftValue != rightValue;
- }
-
- protected boolean compute(int leftValue, int rightValue)
- {
- return leftValue != rightValue;
- }
-
- protected boolean compute(boolean leftValue, boolean rightValue)
- {
- return leftValue != rightValue;
- }
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/NotExpression.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/NotExpression.java
deleted file mode 100644
index 7359a05..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/NotExpression.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/* gnu.classpath.tools.gjdoc.expr.NotExpression
- 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., 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 gnu.classpath.tools.gjdoc.expr;
-
-class NotExpression
- extends UnaryExpression
-{
- protected NotExpression(Expression expr)
- {
- super(expr);
- }
-
- public ConstantExpression evaluate(Context context)
- throws IllegalExpressionException
- {
- ConstantExpression value = expr.evaluate(context);
-
- if (Type.LONG == value.getType()) {
- return new ConstantLong(~value.asNumber().longValue());
- }
- else {
- return new ConstantInteger(~value.asNumber().intValue());
- }
- }
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ShiftLeftExpression.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ShiftLeftExpression.java
deleted file mode 100644
index ad72efb..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ShiftLeftExpression.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/* gnu.classpath.tools.gjdoc.expr.ShiftLeftExpression
- 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., 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 gnu.classpath.tools.gjdoc.expr;
-
-class ShiftLeftExpression
- extends BinaryShiftExpression
-{
- public ShiftLeftExpression(Expression left, Expression right)
- {
- super(left, right);
- }
-
- protected long compute(long leftValue, int rightValue)
- {
- return leftValue << rightValue;
- }
-
- protected int compute(int leftValue, int rightValue)
- {
- return leftValue << rightValue;
- }
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ShiftRightExpression.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ShiftRightExpression.java
deleted file mode 100644
index f9d7820..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ShiftRightExpression.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/* gnu.classpath.tools.gjdoc.expr.ShiftRightExpression
- 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., 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 gnu.classpath.tools.gjdoc.expr;
-
-class ShiftRightExpression
- extends BinaryShiftExpression
-{
- public ShiftRightExpression(Expression left, Expression right)
- {
- super(left, right);
- }
-
- protected long compute(long leftValue, int rightValue)
- {
- return leftValue >> rightValue;
- }
-
- protected int compute(int leftValue, int rightValue)
- {
- return leftValue >> rightValue;
- }
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/SubtractionExpression.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/SubtractionExpression.java
deleted file mode 100644
index dc0101f..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/SubtractionExpression.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/* gnu.classpath.tools.gjdoc.expr.SubtractionExpression
- 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., 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 gnu.classpath.tools.gjdoc.expr;
-
-class SubtractionExpression
- extends BinaryComputationExpression
-{
- public SubtractionExpression(Expression left, Expression right)
- {
- super(left, right);
- }
-
- protected double compute(double leftValue, double rightValue)
- {
- return leftValue - rightValue;
- }
-
- protected float compute(float leftValue, float rightValue)
- {
- return leftValue - rightValue;
- }
-
- protected long compute(long leftValue, long rightValue)
- {
- return leftValue - rightValue;
- }
-
- protected int compute(int leftValue, int rightValue)
- {
- return leftValue - rightValue;
- }
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/Type.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/Type.java
deleted file mode 100644
index 4e0ef0e..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/Type.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/* gnu.classpath.tools.gjdoc.expr.Type
- Copyright (C) 2004, 2012 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 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 gnu.classpath.tools.gjdoc.expr;
-
-class Type
-{
- public static final Type LONG = new Type(Long.TYPE);
- public static final Type INTEGER = new Type(Integer.TYPE);
- public static final Type BOOLEAN = new Type(Boolean.TYPE);
- public static final Type DOUBLE = new Type(Double.TYPE);
- public static final Type FLOAT = new Type(Float.TYPE);
- public static final Type CHAR = new Type(Character.TYPE);
- public static final Type BYTE = new Type(Byte.TYPE);
- public static final Type SHORT = new Type(Short.TYPE);
- public static final Type VOID = new Type(Void.TYPE);
- public static final Type STRING = new Type(String.class);
- public static final Type NULL = new Type(null);
-
- private Class> clazz;
-
- private Type(Class> clazz)
- {
- this.clazz = clazz;
- }
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/TypeCastExpression.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/TypeCastExpression.java
deleted file mode 100644
index c434ae8..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/TypeCastExpression.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/* gnu.classpath.tools.gjdoc.expr.TypeCastExpression
- 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., 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 gnu.classpath.tools.gjdoc.expr;
-
-class TypeCastExpression
- extends UnaryExpression
-{
- private Type type;
-
- public TypeCastExpression(Type type, Expression expr)
- {
- super(expr);
- this.type = type;
- }
-
- public ConstantExpression evaluate(Context context)
- throws IllegalExpressionException
- {
- ConstantExpression value = expr.evaluate(context);
-
- if (Type.BYTE == type) {
- return new ConstantByte(value.asNumber().byteValue());
- }
- else if (Type.SHORT == type) {
- return new ConstantShort(value.asNumber().shortValue());
- }
- else if (Type.INTEGER == type) {
- return new ConstantInteger(value.asNumber().intValue());
- }
- else if (Type.LONG == type) {
- return new ConstantLong(value.asNumber().longValue());
- }
- else if (Type.CHAR == type) {
- return new ConstantChar((char)value.asNumber().intValue());
- }
- else if (Type.FLOAT == type) {
- return new ConstantFloat((float)value.asNumber().intValue());
- }
- else if (Type.DOUBLE == type) {
- return new ConstantDouble((float)value.asNumber().intValue());
- }
- else if (Type.BOOLEAN == type && Type.BOOLEAN == value.getType()) {
- return value;
- }
- else if (Type.STRING == type && Type.STRING == value.getType()) {
- return value;
- }
- else {
- throw new IllegalExpressionException("Cannot cast " + value.getType() + " to " + type);
- }
- }
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/UnaryExpression.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/UnaryExpression.java
deleted file mode 100644
index 33befcb..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/UnaryExpression.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/* gnu.classpath.tools.gjdoc.expr.UnaryExpression
- 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., 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 gnu.classpath.tools.gjdoc.expr;
-
-abstract class UnaryExpression
- implements Expression
-{
- protected Expression expr;
-
- protected UnaryExpression(Expression expr)
- {
- this.expr = expr;
- }
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/UnknownIdentifierException.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/UnknownIdentifierException.java
deleted file mode 100644
index 894a717..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/UnknownIdentifierException.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/* gnu.classpath.tools.gjdoc.expr.UnknownIdentifierException
- 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., 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 gnu.classpath.tools.gjdoc.expr;
-
-public class UnknownIdentifierException
- extends IllegalExpressionException
-{
- public UnknownIdentifierException(String identifier)
- {
- super(identifier);
- }
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/java-expression.g b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/java-expression.g
deleted file mode 100644
index 4a21a86..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/java-expression.g
+++ /dev/null
@@ -1,471 +0,0 @@
-/*
- * This grammar is derived from the Java 1.3 Recognizer
- * (http://www.antlr.org/grammar/java/java.g) by Mitchell, Parr, Lilley,
- * Stanchfield, Mohnen, Williams, Jacobs, Messick and Pybus, Version
- * 1.21.
- *
- * This grammar recognizes simple Java expressions. The following
- * language elements are NOT supported:
- *
- * - type casts to non-primitive types
- * - method calls
- * - constructor calls
- * - array access
- * - comma expressions
- * - increment and decrement operators (both prefix/postfix)
- * - expressions involving constant classes (Abc.class)
- */
-
-header {
- package gnu.classpath.tools.gjdoc.expr;
-}
-
-class JavaRecognizer extends Parser;
-options {
- k = 2; // two token lookahead
- exportVocab=Java; // Call its vocabulary "Java"
- codeGenMakeSwitchThreshold = 2; // Some optimizations
- codeGenBitsetTestThreshold = 3;
- defaultErrorHandler = false; // Don't generate parser error handlers
- buildAST = true;
-}
-
-tokens {
- BLOCK; MODIFIERS; OBJBLOCK; SLIST; CTOR_DEF; METHOD_DEF; VARIABLE_DEF;
- INSTANCE_INIT; STATIC_INIT; TYPE; CLASS_DEF; INTERFACE_DEF;
- PACKAGE_DEF; ARRAY_DECLARATOR; EXTENDS_CLAUSE; IMPLEMENTS_CLAUSE;
- PARAMETERS; PARAMETER_DEF; LABELED_STAT; TYPECAST; INDEX_OP;
- POST_INC; POST_DEC; METHOD_CALL; EXPR; ARRAY_INIT;
- IMPORT; UNARY_MINUS; UNARY_PLUS; CASE_GROUP; ELIST; FOR_INIT; FOR_CONDITION;
- FOR_ITERATOR; EMPTY_STAT; FINAL="final"; ABSTRACT="abstract";
- STRICTFP="strictfp"; SUPER_CTOR_CALL; CTOR_CALL;
-}
-
-// A builtin type specification is a builtin type with possible brackets
-// afterwards (which would make it an array type).
-builtInTypeSpec[boolean addImagNode] returns [Type t = null]
- : t=builtInType (lb:LBRACK^ {#lb.setType(ARRAY_DECLARATOR);} RBRACK!)*
- {
- if ( addImagNode ) {
- #builtInTypeSpec = #(#[TYPE,"TYPE"], #builtInTypeSpec);
- }
- }
- ;
-
-// A type name. which is either a (possibly qualified) class name or
-// a primitive (builtin) type
-type returns [Type t]
- : t=builtInType
- ;
-
-// The primitive types.
-builtInType returns [Type t = null]
- : "void" {t=Type.VOID;}
- | "boolean" {t=Type.BOOLEAN;}
- | "byte" {t=Type.BYTE;}
- | "char" {t=Type.CHAR;}
- | "short" {t=Type.SHORT;}
- | "int" {t=Type.INTEGER;}
- | "float"{t=Type.FLOAT;}
- | "long" {t=Type.LONG;}
- | "double" {t=Type.DOUBLE;}
- | "String" {t=Type.STRING;}
- ;
-
-// A (possibly-qualified) java identifier. We start with the first IDENT
-// and expand its name by adding dots and following IDENTS
-identifier returns [String s = null;]
- : i:IDENT {s=i.getText();} ( DOT^ i2:IDENT {s+="."+i2.getText();} )*
- ;
-
-expression returns [Expression e = null]
- : e=conditionalExpression EOF!
- ;
-
-// conditional test (level 12)
-conditionalExpression returns [Expression e = null] { Expression a,b,c; }
- : e=logicalOrExpression
- ( QUESTION^ b=conditionalExpression COLON! c=conditionalExpression {e=new ConditionalExpression(e,b,c);} )?
- ;
-
-
-// logical or (||) (level 11)
-logicalOrExpression returns [Expression e = null] { Expression a,b; }
- : e=logicalAndExpression (LOR^ b=logicalAndExpression {e=new LogicalOrExpression(e,b);})*
- ;
-
-
-// logical and (&&) (level 10)
-logicalAndExpression returns [Expression e = null] { Expression a,b; }
- : e=inclusiveOrExpression (LAND^ b=inclusiveOrExpression {e=new LogicalAndExpression(e,b);})*
- ;
-
-
-// bitwise or non-short-circuiting or (|) (level 9)
-inclusiveOrExpression returns [Expression e = null] { Expression a,b; }
- : e=exclusiveOrExpression (BOR^ b=exclusiveOrExpression {e=new InclusiveOrExpression(e,b);})*
- ;
-
-
-// exclusive or (^) (level 8)
-exclusiveOrExpression returns [Expression e = null] { Expression a,b; }
- : e=andExpression (BXOR^ b=andExpression {e=new ExclusiveOrExpression(e,b);})*
- ;
-
-
-// bitwise or non-short-circuiting and (&) (level 7)
-andExpression returns [Expression e = null] { Expression a,b; }
- : e=equalityExpression (BAND^ b=equalityExpression {e=new AndExpression(e,b);})*
- ;
-
-
-// equality/inequality (==/!=) (level 6)
-equalityExpression returns [Expression e = null] { Expression a,b; }
- : e=relationalExpression ((NOT_EQUAL^ a=relationalExpression {e=new NotEqualExpression(e,a);} | EQUAL^ a=relationalExpression {e=new EqualExpression(e,a);}))*
- ;
-
-
-// boolean relational expressions (level 5)
-relationalExpression returns [Expression e = null] { Expression a,b; }
- : e=shiftExpression
- ( ( ( LT^ a=shiftExpression {e=new LessThanExpression(e,a);}
- | GT^ a=shiftExpression {e=new GreaterThanExpression(e,a);}
- | LE^ a=shiftExpression {e=new LessThanOrEqualExpression(e,a);}
- | GE^ a=shiftExpression {e=new GreaterThanOrEqualExpression(e,a);}
- )
-
- )*
- )
- ;
-
-
-// bit shift expressions (level 4)
-shiftExpression returns [Expression e = null] { Expression a,b; }
- : e=additiveExpression ((SL^ a=additiveExpression {e=new ShiftLeftExpression(e,a);} | SR^ a=additiveExpression {e=new ShiftRightExpression(e,a);} | BSR^ a=additiveExpression {e=new BitShiftRightExpression(e,a);}))*
- ;
-
-
-// binary addition/subtraction (level 3)
-additiveExpression returns [Expression e = null] { Expression a,b; }
- : e=multiplicativeExpression ((PLUS^ a=multiplicativeExpression {e=new AdditionExpression(e,a);} | MINUS^ a=multiplicativeExpression {e=new SubtractionExpression(e,a);}))*
- ;
-
-
-// multiplication/division/modulo (level 2)
-multiplicativeExpression returns [Expression e = null] { Expression a,b; }
- : e=unaryExpression ((STAR^ a=unaryExpression {e=new MultiplicationExpression(e,a);} | DIV^ a=unaryExpression {e=new DivisionExpression(e,a);} | MOD^ a=unaryExpression {e=new ModuloExpression(e,a);} ))*
- ;
-
-
-unaryExpression returns [Expression e = null] { Expression a,b; }
- : MINUS^ {#MINUS.setType(UNARY_MINUS);} a=unaryExpression {e=new NegateExpression(a);}
- | PLUS^ {#PLUS.setType(UNARY_PLUS);} e=unaryExpression
- | e=unaryExpressionNotPlusMinus
- ;
-
-unaryExpressionNotPlusMinus returns [Expression e = null] { Expression a; Type t; }
- : BNOT^ a=unaryExpression {e=new NotExpression(a);}
- | LNOT^ a=unaryExpression {e=new LogicalNotExpression(a);}
-
- // use predicate to skip cases like: (int.class)
- | (LPAREN builtInTypeSpec[true] RPAREN) =>
- lpb:LPAREN^ {#lpb.setType(TYPECAST);} t=builtInTypeSpec[true] RPAREN!
- a=unaryExpression {e=new TypeCastExpression(t,a);}
-
- | e=primaryExpression
- ;
-
-// the basic element of an expression
-primaryExpression returns [Expression e = null; String i = null;]
- : e=constant
- | i=identifier {e=new IdentifierExpression(i);}
- | "true" { e=new ConstantBoolean(true); }
- | "false" { e=new ConstantBoolean(false); }
- | "null" { e=new ConstantNull(); }
- | LPAREN! e=conditionalExpression RPAREN!
- ;
-
-/** Match a, a.b.c refs
- */
-identPrimary returns [Expression e = null]
- : IDENT
- (
- options {
- // .ident could match here or in postfixExpression.
- // We do want to match here. Turn off warning.
- greedy=true;
- }
- : DOT^ IDENT
- )*
- ;
-
-constant returns [Expression e = null]
- : l1:NUM_INT {e=new ConstantInteger(l1.getText());}
- | l2:CHAR_LITERAL {e=new ConstantChar(l2.getText());}
- | l3:STRING_LITERAL {e=new ConstantString(l3.getText().substring(1, l3.getText().length()-1)); }
- | l4:NUM_FLOAT {e=new ConstantFloat(l4.getText());}
- | l5:NUM_LONG {e=new ConstantLong(l5.getText());}
- | l6:NUM_DOUBLE {e=new ConstantDouble(l6.getText());}
- ;
-
-
-//----------------------------------------------------------------------------
-// The Java scanner
-//----------------------------------------------------------------------------
-class JavaLexer extends Lexer;
-
-options {
- exportVocab=Java; // call the vocabulary "Java"
- testLiterals=false; // don't automatically test for literals
- k=4; // four characters of lookahead
- charVocabulary='\u0003'..'\uFFFF';
- // without inlining some bitset tests, couldn't do unicode;
- // I need to make ANTLR generate smaller bitsets; see
- // bottom of JavaLexer.java
- codeGenBitsetTestThreshold=20;
-}
-
-
-
-// OPERATORS
-QUESTION : '?' ;
-LPAREN : '(' ;
-RPAREN : ')' ;
-LBRACK : '[' ;
-RBRACK : ']' ;
-LCURLY : '{' ;
-RCURLY : '}' ;
-COLON : ':' ;
-COMMA : ',' ;
-//DOT : '.' ;
-ASSIGN : '=' ;
-EQUAL : "==" ;
-LNOT : '!' ;
-BNOT : '~' ;
-NOT_EQUAL : "!=" ;
-DIV : '/' ;
-DIV_ASSIGN : "/=" ;
-PLUS : '+' ;
-PLUS_ASSIGN : "+=" ;
-INC : "++" ;
-MINUS : '-' ;
-MINUS_ASSIGN : "-=" ;
-DEC : "--" ;
-STAR : '*' ;
-STAR_ASSIGN : "*=" ;
-MOD : '%' ;
-MOD_ASSIGN : "%=" ;
-SR : ">>" ;
-SR_ASSIGN : ">>=" ;
-BSR : ">>>" ;
-BSR_ASSIGN : ">>>=" ;
-GE : ">=" ;
-GT : ">" ;
-SL : "<<" ;
-SL_ASSIGN : "<<=" ;
-LE : "<=" ;
-LT : '<' ;
-BXOR : '^' ;
-BXOR_ASSIGN : "^=" ;
-BOR : '|' ;
-BOR_ASSIGN : "|=" ;
-LOR : "||" ;
-BAND : '&' ;
-BAND_ASSIGN : "&=" ;
-LAND : "&&" ;
-SEMI : ';' ;
-
-
-// Whitespace -- ignored
-WS : ( ' '
- | '\t'
- | '\f'
- // handle newlines
- | ( options {generateAmbigWarnings=false;}
- : "\r\n" // Evil DOS
- | '\r' // Macintosh
- | '\n' // Unix (the right way)
- )
- { newline(); }
- )+
- { _ttype = Token.SKIP; }
- ;
-
-// Single-line comments
-SL_COMMIT
- : "//"
- (~('\n'|'\r'))* ('\n'|'\r'('\n')?)
- {$setType(Token.SKIP); newline();}
- ;
-
-// multiple-line comments
-ML_COMMENT
- : "/*"
- ( /* '\r' '\n' can be matched in one alternative or by matching
- '\r' in one iteration and '\n' in another. I am trying to
- handle any flavor of newline that comes in, but the language
- that allows both "\r\n" and "\r" and "\n" to all be valid
- newline is ambiguous. Consequently, the resulting grammar
- must be ambiguous. I'm shutting this warning off.
- */
- options {
- generateAmbigWarnings=false;
- }
- :
- { LA(2)!='/' }? '*'
- | '\r' '\n' {newline();}
- | '\r' {newline();}
- | '\n' {newline();}
- | ~('*'|'\n'|'\r')
- )*
- "*/"
- {$setType(Token.SKIP);}
- ;
-
-
-// character literals
-CHAR_LITERAL
- : '\'' ( ESC | ~('\''|'\n'|'\r'|'\\') ) '\''
- ;
-
-// string literals
-STRING_LITERAL
- : '"' (ESC|~('"'|'\\'|'\n'|'\r'))* '"'
- ;
-
-
-// escape sequence -- note that this is protected; it can only be called
-// from another lexer rule -- it will not ever directly return a token to
-// the parser
-// There are various ambiguities hushed in this rule. The optional
-// '0'...'9' digit matches should be matched here rather than letting
-// them go back to STRING_LITERAL to be matched. ANTLR does the
-// right thing by matching immediately; hence, it's ok to shut off
-// the FOLLOW ambig warnings.
-protected
-ESC
- : '\\'
- ( 'n'
- | 'r'
- | 't'
- | 'b'
- | 'f'
- | '"'
- | '\''
- | '\\'
- | ('u')+ HEX_DIGIT HEX_DIGIT HEX_DIGIT HEX_DIGIT
- | '0'..'3'
- (
- options {
- warnWhenFollowAmbig = false;
- }
- : '0'..'7'
- (
- options {
- warnWhenFollowAmbig = false;
- }
- : '0'..'7'
- )?
- )?
- | '4'..'7'
- (
- options {
- warnWhenFollowAmbig = false;
- }
- : '0'..'7'
- )?
- )
- ;
-
-
-// hexadecimal digit (again, note it's protected!)
-protected
-HEX_DIGIT
- : ('0'..'9'|'A'..'F'|'a'..'f')
- ;
-
-
-// a dummy rule to force vocabulary to be all characters (except special
-// ones that ANTLR uses internally (0 to 2)
-protected
-VOCAB
- : '\3'..'\377'
- ;
-
-
-// an identifier. Note that testLiterals is set to true! This means
-// that after we match the rule, we look in the literals table to see
-// if it's a literal or really an identifer
-IDENT
- options {testLiterals=true;}
- : ('a'..'z'|'A'..'Z'|'_'|'$') ('a'..'z'|'A'..'Z'|'_'|'0'..'9'|'$')*
- ;
-
-
-// a numeric literal
-NUM_INT
- {boolean isDecimal=false; Token t=null;}
- : '.' {_ttype = DOT;}
- ( ('0'..'9')+ (EXPONENT)? (f1:FLOAT_SUFFIX {t=f1;})?
- {
- if (t != null && t.getText().toUpperCase().indexOf('F')>=0) {
- _ttype = NUM_FLOAT;
- }
- else {
- _ttype = NUM_DOUBLE; // assume double
- }
- }
- )?
-
- | ( '0' {isDecimal = true;} // special case for just '0'
- ( ('x'|'X')
- ( // hex
- // the 'e'|'E' and float suffix stuff look
- // like hex digits, hence the (...)+ doesn't
- // know when to stop: ambig. ANTLR resolves
- // it correctly by matching immediately. It
- // is therefor ok to hush warning.
- options {
- warnWhenFollowAmbig=false;
- }
- : HEX_DIGIT
- )+
-
- | //float or double with leading zero
- (('0'..'9')+ ('.'|EXPONENT|FLOAT_SUFFIX)) => ('0'..'9')+
-
- | ('0'..'7')+ // octal
- )?
- | ('1'..'9') ('0'..'9')* {isDecimal=true;} // non-zero decimal
- )
- ( ('l'|'L') { _ttype = NUM_LONG; }
-
- // only check to see if it's a float if looks like decimal so far
- | {isDecimal}?
- ( '.' ('0'..'9')* (EXPONENT)? (f2:FLOAT_SUFFIX {t=f2;})?
- | EXPONENT (f3:FLOAT_SUFFIX {t=f3;})?
- | f4:FLOAT_SUFFIX {t=f4;}
- )
- {
- if (t != null && t.getText().toUpperCase() .indexOf('F') >= 0) {
- _ttype = NUM_FLOAT;
- }
- else {
- _ttype = NUM_DOUBLE; // assume double
- }
- }
- )?
- ;
-
-
-// a couple protected methods to assist in matching floating point numbers
-protected
-EXPONENT
- : ('e'|'E') ('+'|'-')? ('0'..'9')+
- ;
-
-
-protected
-FLOAT_SUFFIX
- : 'f'|'F'|'d'|'D'
- ;
diff --git a/libjava/classpath/tools/gnu/classpath/tools/jar/Action.java b/libjava/classpath/tools/gnu/classpath/tools/jar/Action.java
deleted file mode 100644
index 6363157..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/jar/Action.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/* Action.java - an action taken by the jar driver
- Copyright (C) 2006 Free Software Foundation, Inc.
-
- This file is part of GNU Classpath.
-
- GNU Classpath is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2, or (at your option)
- any later version.
-
- GNU Classpath is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with GNU Classpath; see the file COPYING. If not, write to the
- Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
- 02110-1301 USA.
-
- Linking this library statically or dynamically with other modules is
- making a combined work based on this library. Thus, the terms and
- conditions of the GNU General Public License cover the whole
- combination.
-
- As a special exception, the copyright holders of this library give you
- permission to link this library with independent modules to produce an
- executable, regardless of the license terms of these independent
- modules, and to copy and distribute the resulting executable under
- terms of your choice, provided that you also meet, for each linked
- independent module, the terms and conditions of the license of that
- module. An independent module is a module which is not derived from
- or based on this library. If you modify this library, you may extend
- this exception to your version of the library, but 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.jar;
-
-import java.io.IOException;
-
-public abstract class Action
-{
- protected Action()
- {
- }
-
- public abstract void run(Main parameters)
- throws IOException;
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/jar/Creator.java b/libjava/classpath/tools/gnu/classpath/tools/jar/Creator.java
deleted file mode 100644
index be8d2a1..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/jar/Creator.java
+++ /dev/null
@@ -1,251 +0,0 @@
-/* Creator.java - create a new jar file
- Copyright (C) 2006, 2008 Free Software Foundation, Inc.
-
- This file is part of GNU Classpath.
-
- GNU Classpath is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2, or (at your option)
- any later version.
-
- GNU Classpath is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with GNU Classpath; see the file COPYING. If not, write to the
- Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
- 02110-1301 USA.
-
- Linking this library statically or dynamically with other modules is
- making a combined work based on this library. Thus, the terms and
- conditions of the GNU General Public License cover the whole
- combination.
-
- As a special exception, the copyright holders of this library give you
- permission to link this library with independent modules to produce an
- executable, regardless of the license terms of these independent
- modules, and to copy and distribute the resulting executable under
- terms of your choice, provided that you also meet, for each linked
- independent module, the terms and conditions of the license of that
- module. An independent module is a module which is not derived from
- or based on this library. If you modify this library, you may extend
- this exception to your version of the library, but you are not
- obligated to do so. If you do not wish to do so, delete this
- exception statement from your version. */
-
-
-package gnu.classpath.tools.jar;
-
-import java.io.BufferedOutputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.text.MessageFormat;
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.jar.Attributes;
-import java.util.jar.JarFile;
-import java.util.jar.JarOutputStream;
-import java.util.jar.Manifest;
-import java.util.zip.CRC32;
-import java.util.zip.ZipEntry;
-
-public class Creator
- extends Action
-{
- JarOutputStream outputStream;
- HashSet writtenItems = new HashSet();
- // The manifest to use, or null if we don't want a manifest.
- Manifest manifest;
-
- private long copyFile(CRC32 crc, InputStream is, OutputStream output)
- throws IOException
- {
- byte[] buffer = new byte[1024];
- long size = 0;
- while (true)
- {
- int len = is.read(buffer);
- if (len == - 1)
- break;
- size += len;
- output.write(buffer, 0, len);
- crc.update(buffer, 0, len);
- }
- output.close();
- return size;
- }
-
- protected void writeFile(boolean isDirectory, InputStream inputFile,
- String filename, boolean verbose)
- throws IOException
- {
- if (writtenItems.contains(filename))
- {
- if (verbose)
- {
- String msg = MessageFormat.format(Messages.getString("Creator.Ignoring"), //$NON-NLS-1$
- new Object[] { filename });
- System.err.println(msg);
- }
- return;
- }
-
- ByteArrayOutputStream out = new ByteArrayOutputStream();
- CRC32 crc = new CRC32();
- long size;
- if (isDirectory)
- {
- size = 0;
- }
- else
- {
- size = copyFile(crc, inputFile, out);
- }
-
- ZipEntry entry = new ZipEntry(filename);
- entry.setCrc(crc.getValue());
- entry.setSize(size);
-
- outputStream.putNextEntry(entry);
- out.writeTo(outputStream);
- outputStream.closeEntry();
- writtenItems.add(filename);
-
- if (verbose)
- {
- long csize = entry.getCompressedSize();
- long perc;
- if (size == 0)
- perc = 0;
- else
- perc = 100 - (100 * csize) / size;
- String msg = MessageFormat.format(Messages.getString("Creator.Adding"), //$NON-NLS-1$
- new Object[]
- {
- filename,
- Long.valueOf(size),
- Long.valueOf(entry.getSize()),
- Long.valueOf(perc)
- });
- System.err.println(msg);
- }
- }
-
- protected void writeFile(File file, String filename, boolean verbose)
- throws IOException
- {
- boolean isDirectory = file.isDirectory();
- if (isDirectory)
- {
- if (filename.charAt(filename.length() - 1) != '/')
- filename += '/';
- writeFile(isDirectory, null, filename, verbose);
- }
- else
- {
- InputStream inputStream = new FileInputStream(file);
- writeFile(isDirectory, inputStream, filename, verbose);
- inputStream.close();
- }
- }
-
- private void addEntries(ArrayList result, Entry entry)
- {
- if (entry.file.isDirectory())
- {
- String name = entry.name;
- if (name.charAt(name.length() - 1) != '/')
- {
- name += '/';
- entry = new Entry(entry.file, name);
- }
- result.add(entry);
- String[] files = entry.file.list();
- for (int i = 0; i < files.length; ++i)
- addEntries(result, new Entry(new File(entry.file, files[i]),
- entry.name + files[i]));
- }
- else
- result.add(entry);
- }
-
- private ArrayList getAllEntries(Main parameters)
- {
- ArrayList allEntries = new ArrayList();
- for (Entry entry : parameters.entries)
- addEntries(allEntries, entry);
- return allEntries;
- }
-
- private void writeCommandLineEntries(Main parameters)
- throws IOException
- {
- // We've already written the manifest, make sure to mark it.
- writtenItems.add("META-INF/"); //$NON-NLS-1$
- writtenItems.add(JarFile.MANIFEST_NAME);
-
- ArrayList allEntries = getAllEntries(parameters);
- for (Entry entry : allEntries)
- writeFile(entry.file, entry.name, parameters.verbose);
- }
-
- protected Manifest createManifest(Main parameters)
- throws IOException
- {
- if (! parameters.wantManifest)
- return null;
- if (parameters.manifestFile != null)
- {
- // User specified a manifest file.
- InputStream contents = new FileInputStream(parameters.manifestFile);
- return new Manifest(contents);
- }
- return new Manifest();
- }
-
- protected void writeCommandLineEntries(Main parameters, OutputStream os)
- throws IOException
- {
- manifest = createManifest(parameters);
- /* If no version is specified, provide the same manifest version default
- * as Sun's jar tool */
- if (parameters.wantManifest)
- {
- Attributes attr = manifest.getMainAttributes();
- if (attr.getValue(Attributes.Name.MANIFEST_VERSION) == null)
- attr.putValue(Attributes.Name.MANIFEST_VERSION.toString(), "1.0");
- attr.putValue("Created-By", System.getProperty("java.version") +
- " (" + System.getProperty("java.vendor") + ")");
- }
- outputStream = new JarOutputStream(os, manifest);
- // FIXME: this sets the method too late for the manifest file.
- outputStream.setMethod(parameters.storageMode);
- writeCommandLineEntries(parameters);
- }
-
- protected void close() throws IOException
- {
- outputStream.finish();
- outputStream.close();
- }
-
- public void run(Main parameters) throws IOException
- {
- if (parameters.archiveFile == null || parameters.archiveFile.equals("-")) //$NON-NLS-1$
- writeCommandLineEntries(parameters, System.out);
- else
- {
- OutputStream os
- = new BufferedOutputStream(new FileOutputStream(parameters.archiveFile));
- writeCommandLineEntries(parameters, os);
- }
- close();
- }
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/jar/Entry.java b/libjava/classpath/tools/gnu/classpath/tools/jar/Entry.java
deleted file mode 100644
index b910879..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/jar/Entry.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/* Entry.java - represent a single file to write to a jar
- Copyright (C) 2006, 2007 Free Software Foundation, Inc.
-
- This file is part of GNU Classpath.
-
- GNU Classpath is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2, or (at your option)
- any later version.
-
- GNU Classpath is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with GNU Classpath; see the file COPYING. If not, write to the
- Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
- 02110-1301 USA.
-
- Linking this library statically or dynamically with other modules is
- making a combined work based on this library. Thus, the terms and
- conditions of the GNU General Public License cover the whole
- combination.
-
- As a special exception, the copyright holders of this library give you
- permission to link this library with independent modules to produce an
- executable, regardless of the license terms of these independent
- modules, and to copy and distribute the resulting executable under
- terms of your choice, provided that you also meet, for each linked
- independent module, the terms and conditions of the license of that
- module. An independent module is a module which is not derived from
- or based on this library. If you modify this library, you may extend
- this exception to your version of the library, but you are not
- obligated to do so. If you do not wish to do so, delete this
- exception statement from your version. */
-
-
-package gnu.classpath.tools.jar;
-
-import java.io.File;
-
-public class Entry
-{
- public File file;
-
- public String name;
-
- public Entry(File file, String name)
- {
- this.file = file;
-
- /* Removes any './' prefixes automatically. Those caused trouble
- * in (boot) classpath use-cases. See #32516.
- */
- int start = 0;
- while (name.length() > start + 2
- && name.codePointAt(start) == '.'
- && name.codePointAt(start + 1) == File.separatorChar)
- start += 2;
-
- this.name = name.substring(start);
- }
-
- public Entry(File file)
- {
- this(file, file.toString());
- }
-
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/jar/Extractor.java b/libjava/classpath/tools/gnu/classpath/tools/jar/Extractor.java
deleted file mode 100644
index 203ff05..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/jar/Extractor.java
+++ /dev/null
@@ -1,127 +0,0 @@
-/* Extractor.java - action to extract from a jar 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.jar;
-
-import java.io.BufferedInputStream;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.text.MessageFormat;
-import java.util.zip.ZipEntry;
-import java.util.zip.ZipInputStream;
-
-public class Extractor
- extends Action
-{
- // This is a set of all the items specified on the command line.
- private WorkSet allItems;
-
- private void copyFile(InputStream input, File output) throws IOException
- {
- FileOutputStream os = new FileOutputStream(output);
- byte[] buffer = new byte[1024];
- while (true)
- {
- int len = input.read(buffer);
- if (len == - 1)
- break;
- os.write(buffer, 0, len);
- }
- os.close();
- }
-
- public void run(Main parameters) throws IOException
- {
- // Figure out what we want to extract.
- allItems = new WorkSet(parameters.entries);
- // Open the input file.
- ZipInputStream zis;
- File zfile = parameters.archiveFile;
- if (zfile == null || "-".equals(zfile.getName())) //$NON-NLS-1$
- zis = new ZipInputStream(System.in);
- else
- {
- InputStream ins = new BufferedInputStream(new FileInputStream(zfile));
- zis = new ZipInputStream(ins);
- }
- // Extract stuff.
- while (true)
- {
- ZipEntry entry = zis.getNextEntry();
- if (entry == null)
- break;
- if (! allItems.contains(entry.getName()))
- continue;
- File file = new File(entry.getName());
- if (entry.isDirectory())
- {
- if (file.mkdirs())
- {
- if (parameters.verbose)
- {
- String msg
- = MessageFormat.format(Messages.getString("Extractor.Created"), //$NON-NLS-1$
- new Object[] { file });
- System.err.println(msg);
- }
- }
- continue;
- }
-
- File parent = file.getParentFile();
- if (parent != null)
- parent.mkdirs();
-
- copyFile(zis, file);
-
- if (parameters.verbose)
- {
- String fmt;
- if (entry.getMethod() == ZipEntry.STORED)
- fmt = Messages.getString("Extractor.Extracted"); //$NON-NLS-1$
- else
- fmt = Messages.getString("Extractor.Inflated"); //$NON-NLS-1$
- String msg = MessageFormat.format(fmt, new Object[] { file });
- System.err.println(msg);
- }
- }
- }
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/jar/Indexer.java b/libjava/classpath/tools/gnu/classpath/tools/jar/Indexer.java
deleted file mode 100644
index ae79b26..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/jar/Indexer.java
+++ /dev/null
@@ -1,142 +0,0 @@
-/* Indexer.java -- add index.list file to jar
- Copyright (C) 2006, 2008 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-02110-1301 USA.
-
-Linking this library statically or dynamically with other modules is
-making a combined work based on this library. Thus, the terms and
-conditions of the GNU General Public License cover the whole
-combination.
-
-As a special exception, the copyright holders of this library give you
-permission to link this library with independent modules to produce an
-executable, regardless of the license terms of these independent
-modules, and to copy and distribute the resulting executable under
-terms of your choice, provided that you also meet, for each linked
-independent module, the terms and conditions of the license of that
-module. An independent module is a module which is not derived from
-or based on this library. If you modify this library, you may extend
-this exception to your version of the library, but you are not
-obligated to do so. If you do not wish to do so, delete this
-exception statement from your version. */
-
-
-package gnu.classpath.tools.jar;
-
-import gnu.java.net.IndexListParser;
-
-import java.io.ByteArrayInputStream;
-import java.io.File;
-import java.io.IOException;
-import java.io.OutputStream;
-import java.text.MessageFormat;
-import java.util.Enumeration;
-import java.util.LinkedHashSet;
-import java.util.StringTokenizer;
-import java.util.jar.Attributes;
-import java.util.jar.JarEntry;
-import java.util.jar.JarFile;
-import java.util.jar.Manifest;
-
-public class Indexer
- extends Updater
-{
- private void indexJarFile(StringBuilder result, File fileName,
- boolean verbose)
- throws IOException
- {
- if (verbose)
- {
- String msg = MessageFormat.format(Messages.getString("Indexer.Indexing"), //$NON-NLS-1$
- new Object[] { fileName });
- System.err.println(msg);
- }
- JarFile jf = new JarFile(fileName);
-
- // Index the files in this jar.
- // The results look a little better if we keep them
- // in insertion order.
- LinkedHashSet entries = new LinkedHashSet();
- Enumeration e = jf.entries();
- while (e.hasMoreElements())
- {
- JarEntry entry = (JarEntry) e.nextElement();
- String name = entry.getName();
- if (name.startsWith("META-INF/")) //$NON-NLS-1$
- continue;
- int index = name.lastIndexOf('/');
- if (index != -1)
- name = name.substring(0, index);
- entries.add(name);
- }
- if (! entries.isEmpty())
- {
- result.append(fileName);
- // Any line ending will do.
- result.append('\n');
- for (String s : entries)
- {
- result.append(s);
- result.append('\n');
- }
- // Paragraph break.
- result.append('\n');
- }
-
- // Now read pointed-to jars.
- Manifest m = jf.getManifest();
- if (m != null)
- {
- File parent = fileName.getParentFile();
- Attributes attrs = m.getMainAttributes();
- String jars = attrs.getValue(Attributes.Name.CLASS_PATH);
- if (jars != null)
- {
- StringTokenizer st = new StringTokenizer(jars, " "); //$NON-NLS-1$
- while (st.hasMoreTokens())
- {
- String name = st.nextToken();
- indexJarFile(result, new File(parent, name), verbose);
- }
- }
- }
-
- jf.close();
- }
-
- protected void writeCommandLineEntries(Main parameters, OutputStream os)
- throws IOException
- {
- // This is a pretty lame design. We know the super call will
- // only have side effects and won't actually write anything important.
- super.writeCommandLineEntries(parameters, os);
-
- // Now compute our index file and write it.
- StringBuilder contents = new StringBuilder();
- indexJarFile(contents, parameters.archiveFile, parameters.verbose);
- if (contents.length() != 0)
- {
- // Insert in reverse order to avoid computing anything.
- contents.insert(0, "1.0\n\n"); //$NON-NLS-1$
- contents.insert(0, IndexListParser.JAR_INDEX_VERSION_KEY);
- ByteArrayInputStream in
- = new ByteArrayInputStream(contents.toString().getBytes());
- writeFile(false, in, IndexListParser.JAR_INDEX_FILE, parameters.verbose);
- }
- }
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/jar/Lister.java b/libjava/classpath/tools/gnu/classpath/tools/jar/Lister.java
deleted file mode 100644
index 98275f7..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/jar/Lister.java
+++ /dev/null
@@ -1,112 +0,0 @@
-/* Lister.java - action to list contents of a jar 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.jar;
-
-import java.io.BufferedInputStream;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.text.MessageFormat;
-import java.util.Date;
-import java.util.zip.ZipEntry;
-import java.util.zip.ZipInputStream;
-
-public class Lister
- extends Action
-{
- private WorkSet allItems;
-
- private long readUntilEnd(InputStream is) throws IOException
- {
- byte[] buffer = new byte[5 * 1024];
- long result = 0;
- while (true)
- {
- int r = is.read(buffer);
- if (r == -1)
- break;
- result += r;
- }
- return result;
- }
-
- private void listJar(ZipInputStream zis, boolean verbose) throws IOException
- {
- MessageFormat format = null;
- if (verbose)
- format = new MessageFormat(" {0,date,E M dd HH:mm:ss z yyyy} {1}");
- while (true)
- {
- ZipEntry entry = zis.getNextEntry();
- if (entry == null)
- break;
- if (! allItems.contains(entry.getName()))
- continue;
- if (verbose)
- {
- // Read the stream; entry.getSize() is unreliable.
- // (Also, we're just going to read it anyway.)
- long size = readUntilEnd(zis);
- // No easy way to right-justify the size using
- // MessageFormat -- how odd.
- String s = " " + size;
- int index = Math.min(s.length() - 5, 5);
- System.out.print(s.substring(index));
- Object[] values = new Object[] { new Date(entry.getTime()),
- entry.getName() };
- System.out.println(format.format(values));
- }
- else
- System.out.println(entry.getName());
- }
- }
-
- public void run(Main parameters) throws IOException
- {
- allItems = new WorkSet(parameters.entries);
- File file = parameters.archiveFile;
- ZipInputStream zis;
- if (file == null || "-".equals(file.getName()))
- zis = new ZipInputStream(System.in);
- else
- zis = new ZipInputStream(new BufferedInputStream(new FileInputStream(file)));
- listJar(zis, parameters.verbose);
- }
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/jar/Main.java b/libjava/classpath/tools/gnu/classpath/tools/jar/Main.java
deleted file mode 100644
index 34ef928..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/jar/Main.java
+++ /dev/null
@@ -1,293 +0,0 @@
-/* Main.java - jar program main()
- Copyright (C) 2006, 2007 Free Software Foundation, Inc.
-
- This file is part of GNU Classpath.
-
- GNU Classpath is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2, or (at your option)
- any later version.
-
- GNU Classpath is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with GNU Classpath; see the file COPYING. If not, write to the
- Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
- 02110-1301 USA.
-
- Linking this library statically or dynamically with other modules is
- making a combined work based on this library. Thus, the terms and
- conditions of the GNU General Public License cover the whole
- combination.
-
- As a special exception, the copyright holders of this library give you
- permission to link this library with independent modules to produce an
- executable, regardless of the license terms of these independent
- modules, and to copy and distribute the resulting executable under
- terms of your choice, provided that you also meet, for each linked
- independent module, the terms and conditions of the license of that
- module. An independent module is a module which is not derived from
- or based on this library. If you modify this library, you may extend
- this exception to your version of the library, but you are not
- obligated to do so. If you do not wish to do so, delete this
- exception statement from your version. */
-
-
-package gnu.classpath.tools.jar;
-
-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.BufferedReader;
-import java.io.File;
-import java.io.InputStreamReader;
-import java.io.IOException;
-import java.text.MessageFormat;
-import java.util.ArrayList;
-import java.util.zip.ZipOutputStream;
-
-public class Main
-{
- /** The mode of operation. This is the class representing
- * the action; we make a new instance before using it. It
- * must be a subclass of Action. 'null' means the mode
- * has not yet been set. */
- Class operationMode;
-
- /** The archive file name. */
- File archiveFile;
-
- /** The zip storage mode. */
- int storageMode = ZipOutputStream.DEFLATED;
-
- /** True if we should read file names from stdin. */
- boolean readNamesFromStdin = false;
-
- /** True for verbose mode. */
- boolean verbose = false;
-
- /** True if we want a manifest file. */
- boolean wantManifest = true;
-
- /** Name of manifest file to use. */
- File manifestFile;
-
- /** A list of Entry objects, each describing a file to write. */
- ArrayList entries = new ArrayList();
-
- /** Used only while parsing, holds the first argument for -C. */
- String changedDirectory;
-
- void setArchiveFile(String filename) throws OptionException
- {
- if (archiveFile != null)
- {
- String fmt = MessageFormat.format(Messages.getString("Main.ArchiveAlreadySet"), //$NON-NLS-1$
- new Object[] { archiveFile });
- throw new OptionException(fmt);
- }
- archiveFile = new File(filename);
- }
-
- class HandleFile
- extends FileArgumentCallback
- {
- public void notifyFile(String fileArgument)
- {
- Entry entry;
- if (changedDirectory != null)
- {
- entry = new Entry(new File(changedDirectory, fileArgument),
- fileArgument);
- changedDirectory = null;
- }
- else
- entry = new Entry(new File(fileArgument));
- entries.add(entry);
- }
- }
-
- // An option that knows how to set the operation mode.
- private class ModeOption
- extends Option
- {
- private Class mode;
-
- public ModeOption(char shortName, String description, Class mode)
- {
- super(shortName, description);
- this.mode = mode;
- }
-
- public ModeOption(char shortName, String description, String argName,
- Class mode)
- {
- super(shortName, description, argName);
- this.mode = mode;
- }
-
- public void parsed(String argument) throws OptionException
- {
- if (operationMode != null)
- throw new OptionException(Messages.getString("Main.ModeAlreaySet")); //$NON-NLS-1$
- operationMode = mode;
- // We know this is only the case for -i.
- if (argument != null)
- setArchiveFile(argument);
- }
- }
-
- private class JarParser extends ClasspathToolParser
- {
- public JarParser(String name)
- {
- super(name);
- }
-
- protected void validate() throws OptionException
- {
- if (operationMode == null)
- throw new OptionException(Messages.getString("Main.MustSpecify")); //$NON-NLS-1$
- if (changedDirectory != null)
- throw new OptionException(Messages.getString("Main.TwoArgsReqd")); //$NON-NLS-1$
- if (! wantManifest && manifestFile != null)
- throw new OptionException(Messages.getString("Main.CantHaveBoth")); //$NON-NLS-1$
- if (operationMode == Indexer.class)
- {
- // Some extra validation for -i.
- if (! entries.isEmpty())
- throw new OptionException(Messages.getString("Main.NoFilesWithi")); //$NON-NLS-1$
- if (! wantManifest)
- throw new OptionException(Messages.getString("Main.NoMAndi")); //$NON-NLS-1$
- if (manifestFile != null)
- throw new OptionException(Messages.getString("Main.AnotherNomAndi")); //$NON-NLS-1$
- }
- }
- }
-
- private ClasspathToolParser initializeParser()
- {
- ClasspathToolParser p = new JarParser("jar"); //$NON-NLS-1$
- p.setHeader(Messages.getString("Main.Usage")); //$NON-NLS-1$
-
- OptionGroup grp = new OptionGroup(Messages.getString("Main.OpMode")); //$NON-NLS-1$
- grp.add(new ModeOption('c', Messages.getString("Main.Create"), Creator.class)); //$NON-NLS-1$
- grp.add(new ModeOption('x', Messages.getString("Main.Extract"), Extractor.class)); //$NON-NLS-1$
- grp.add(new ModeOption('t', Messages.getString("Main.List"), Lister.class)); //$NON-NLS-1$
- grp.add(new ModeOption('u', Messages.getString("Main.Update"), Updater.class)); //$NON-NLS-1$
- // Note that -i works in-place and explicitly requires a file name.
- grp.add(new ModeOption('i', Messages.getString("Main.Index"), Messages.getString("Main.FileArg"), Indexer.class)); //$NON-NLS-1$ //$NON-NLS-2$
- p.add(grp);
-
- grp = new OptionGroup(Messages.getString("Main.OpMods")); //$NON-NLS-1$
- grp.add(new Option('f', Messages.getString("Main.ArchiveName"), Messages.getString("Main.FileArg2")) //$NON-NLS-1$ //$NON-NLS-2$
- {
- public void parsed(String argument) throws OptionException
- {
- setArchiveFile(argument);
- }
- });
- grp.add(new Option('0', Messages.getString("Main.NoZip")) //$NON-NLS-1$
- {
- public void parsed(String argument) throws OptionException
- {
- storageMode = ZipOutputStream.STORED;
- }
- });
- grp.add(new Option('v', Messages.getString("Main.Verbose")) //$NON-NLS-1$
- {
- public void parsed(String argument) throws OptionException
- {
- verbose = true;
- }
- });
- grp.add(new Option('M', Messages.getString("Main.NoManifest")) //$NON-NLS-1$
- {
- public void parsed(String argument) throws OptionException
- {
- wantManifest = false;
- }
- });
- grp.add(new Option('m', Messages.getString("Main.ManifestName"), Messages.getString("Main.ManifestArgName")) //$NON-NLS-1$ //$NON-NLS-2$
- {
- public void parsed(String argument) throws OptionException
- {
- manifestFile = new File(argument);
- }
- });
- // -@
- p.add(grp);
-
- grp = new OptionGroup(Messages.getString("Main.FileNameGroup")); //$NON-NLS-1$
- grp.add(new Option('C', Messages.getString("Main.ChangeDir"), //$NON-NLS-1$
- Messages.getString("Main.ChangeDirArg")) //$NON-NLS-1$
- {
- public void parsed(String argument) throws OptionException
- {
- changedDirectory = argument;
- }
- });
- grp.add(new Option('@', Messages.getString("Main.Stdin"))
- {
- public void parsed(String argument) throws OptionException
- {
- readNamesFromStdin = true;
- }
- });
- p.add(grp);
-
- return p;
- }
-
- private void readNames()
- {
- String line;
- try
- {
- BufferedReader br
- = new BufferedReader(new InputStreamReader(System.in));
- while ((line = br.readLine()) != null)
- entries.add(new Entry(new File(line)));
- }
- catch (IOException _)
- {
- // Ignore.
- }
- }
-
- private void run(String[] args)
- throws InstantiationException, IllegalAccessException, IOException
- {
- ClasspathToolParser p = initializeParser();
- // Special hack to emulate old tar-style commands.
- if (args.length > 0 && args[0].charAt(0) != '-')
- args[0] = '-' + args[0];
- p.parse(args, new HandleFile(), true);
- if (readNamesFromStdin)
- readNames();
- Action t = (Action) operationMode.newInstance();
- t.run(this);
- }
-
- public static void main(String[] args)
- {
- Main jarprogram = new Main();
- try
- {
- jarprogram.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/jar/Messages.java b/libjava/classpath/tools/gnu/classpath/tools/jar/Messages.java
deleted file mode 100644
index ea54bd0..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/jar/Messages.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/* Messages.java -- localization support for jar
- Copyright (C) 2006 Free Software Foundation, Inc.
-
- This file is part of GNU Classpath.
-
- GNU Classpath is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2, or (at your option)
- any later version.
-
- GNU Classpath is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with GNU Classpath; see the file COPYING. If not, write to the
- Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
- 02110-1301 USA.
-
- Linking this library statically or dynamically with other modules is
- making a combined work based on this library. Thus, the terms and
- conditions of the GNU General Public License cover the whole
- combination.
-
- As a special exception, the copyright holders of this library give you
- permission to link this library with independent modules to produce an
- executable, regardless of the license terms of these independent
- modules, and to copy and distribute the resulting executable under
- terms of your choice, provided that you also meet, for each linked
- independent module, the terms and conditions of the license of that
- module. An independent module is a module which is not derived from
- or based on this library. If you modify this library, you may extend
- this exception to your version of the library, but 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.jar;
-
-import java.util.MissingResourceException;
-import java.util.ResourceBundle;
-
-public class Messages
-{
- private static final String BUNDLE_NAME
- = "gnu.classpath.tools.jar.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/jar/Updater.java b/libjava/classpath/tools/gnu/classpath/tools/jar/Updater.java
deleted file mode 100644
index e1df852..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/jar/Updater.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/* Updater.java - action to update a jar 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.jar;
-
-import java.io.BufferedInputStream;
-import java.io.BufferedOutputStream;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.OutputStream;
-import java.util.Enumeration;
-import java.util.jar.JarFile;
-import java.util.jar.Manifest;
-import java.util.zip.ZipEntry;
-
-public class Updater
- extends Creator
-{
- JarFile inputJar;
-
- protected Manifest createManifest(Main parameters) throws IOException
- {
- Manifest result = inputJar.getManifest();
- if (result == null)
- return super.createManifest(parameters);
- if (parameters.manifestFile != null)
- result.read(new FileInputStream(parameters.manifestFile));
- return result;
- }
-
- public void run(Main parameters) throws IOException
- {
- // Set this early so that createManifest can use it.
- inputJar = new JarFile(parameters.archiveFile);
-
- // Write all the new entries to a temporary file.
- File tmpFile = File.createTempFile("jarcopy", null,
- parameters.archiveFile.getParentFile());
- OutputStream os = new BufferedOutputStream(new FileOutputStream(tmpFile));
- writeCommandLineEntries(parameters, os);
-
- // Now read the old file and copy extra entries to the new file.
- Enumeration e = inputJar.entries();
- while (e.hasMoreElements())
- {
- ZipEntry entry = (ZipEntry) e.nextElement();
- if (writtenItems.contains(entry.getName()))
- continue;
- writeFile(entry.isDirectory(), inputJar.getInputStream(entry),
- entry.getName(), parameters.verbose);
- }
-
- close();
- if (!tmpFile.renameTo(parameters.archiveFile))
- {
- throw new IOException("Couldn't rename new JAR file " + tmpFile +
- "to " + parameters.archiveFile);
- }
- }
-
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/jar/WorkSet.java b/libjava/classpath/tools/gnu/classpath/tools/jar/WorkSet.java
deleted file mode 100644
index d4b7f1e..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/jar/WorkSet.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/* WorkSet.java -- Helper to track what files to work on
- Copyright (C) 2006, 2008 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-02110-1301 USA.
-
-Linking this library statically or dynamically with other modules is
-making a combined work based on this library. Thus, the terms and
-conditions of the GNU General Public License cover the whole
-combination.
-
-As a special exception, the copyright holders of this library give you
-permission to link this library with independent modules to produce an
-executable, regardless of the license terms of these independent
-modules, and to copy and distribute the resulting executable under
-terms of your choice, provided that you also meet, for each linked
-independent module, the terms and conditions of the license of that
-module. An independent module is a module which is not derived from
-or based on this library. If you modify this library, you may extend
-this exception to your version of the library, but you are not
-obligated to do so. If you do not wish to do so, delete this
-exception statement from your version. */
-
-
-package gnu.classpath.tools.jar;
-
-import java.util.ArrayList;
-import java.util.HashSet;
-
-public class WorkSet
-{
- private HashSet allItems;
-
- private void initSet(ArrayList entries)
- {
- if (entries == null || entries.isEmpty())
- return;
- allItems = new HashSet();
- for (Entry entry : entries)
- {
- int len = entry.name.length();
- while (len > 0 && entry.name.charAt(len - 1) == '/')
- --len;
- String name = entry.name.substring(0, len);
- allItems.add(name);
- }
- }
-
- public WorkSet(ArrayList entries)
- {
- initSet(entries);
- }
-
- public boolean contains(String filename)
- {
- if (allItems == null)
- return true;
- while (filename.length() > 0)
- {
- if (allItems.contains(filename))
- return true;
- int index = filename.lastIndexOf('/');
- if (index == -1)
- break;
- filename = filename.substring(0, index);
- }
- return false;
- }
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/jarsigner/HashUtils.java b/libjava/classpath/tools/gnu/classpath/tools/jarsigner/HashUtils.java
deleted file mode 100644
index c9921dd..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/jarsigner/HashUtils.java
+++ /dev/null
@@ -1,124 +0,0 @@
-/* Utils.java -- Utility methods for JAR file signing/verification
- Copyright (C) 2006, 2007 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-02110-1301 USA.
-
-Linking this library statically or dynamically with other modules is
-making a combined work based on this library. Thus, the terms and
-conditions of the GNU General Public License cover the whole
-combination.
-
-As a special exception, the copyright holders of this library give you
-permission to link this library with independent modules to produce an
-executable, regardless of the license terms of these independent
-modules, and to copy and distribute the resulting executable under
-terms of your choice, provided that you also meet, for each linked
-independent module, the terms and conditions of the license of that
-module. An independent module is a module which is not derived from
-or based on this library. If you modify this library, you may extend
-this exception to your version of the library, but you are not
-obligated to do so. If you do not wish to do so, delete this
-exception statement from your version. */
-
-
-package gnu.classpath.tools.jarsigner;
-
-import gnu.classpath.Configuration;
-import gnu.java.security.hash.Sha160;
-import gnu.java.util.Base64;
-import gnu.java.util.jar.JarUtils;
-
-import java.io.BufferedInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.UnsupportedEncodingException;
-import java.util.logging.Logger;
-
-/**
- * Collection of utility methods used in JAR file signing and verification.
- */
-class HashUtils
-{
- private static final Logger log = Logger.getLogger(HashUtils.class.getName());
- private Sha160 sha = new Sha160();
-
- // default 0-arguments constructor
-
- /**
- * @param stream the input stream to digest.
- * @return a base-64 representation of the resulting SHA-1 digest of the
- * contents of the designated input stream.
- * @throws IOException if an I/O related exception occurs during the process.
- */
- String hashStream(InputStream stream) throws IOException
- {
- BufferedInputStream bis = new BufferedInputStream(stream, 4096);
- byte[] buffer = new byte[4096];
- int count = 0;
- int n;
- while ((n = bis.read(buffer)) != - 1)
- if (n > 0)
- {
- sha.update(buffer, 0, n);
- count += n;
- }
- byte[] hash = sha.digest();
- if (Configuration.DEBUG)
- log.finest("Hashed " + count + " byte(s)");
- String result = Base64.encode(hash);
- return result;
- }
-
- /**
- * @param ba the byte array to digest.
- * @return a base-64 representation of the resulting SHA-1 digest of the
- * contents of the designated buffer.
- */
- String hashByteArray(byte[] ba) throws IOException
- {
- sha.update(ba);
- byte[] hash = sha.digest();
- if (Configuration.DEBUG)
- log.finest("Hashed " + ba.length + " byte(s)");
- String result = Base64.encode(hash);
- return result;
- }
-
- /**
- * @param name the JAR entry name
- * @param entryHash the hash of the entry file which appears in the
- * manifest.
- * @return the base-64 encoded form of the hash of the corresponding Manifest
- * JAR entry which will appear in the SF file under the entry with the
- * same name.
- * @throws UnsupportedEncodingException If UTF-8 character encoding is not
- * supported on this platform.
- */
- String hashManifestEntry(String name, String entryHash)
- throws UnsupportedEncodingException
- {
- sha.update((JarUtils.NAME + ": " + name).getBytes("UTF-8"));
- sha.update(JarUtils.CRLF);
- sha.update((Main.DIGEST + ": " + entryHash).getBytes("UTF-8"));
- sha.update(JarUtils.CRLF);
- sha.update(JarUtils.CRLF);
- byte[] sfHash = sha.digest();
- String result = Base64.encode(sfHash);
- return result;
- }
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/jarsigner/JarSigner.java b/libjava/classpath/tools/gnu/classpath/tools/jarsigner/JarSigner.java
deleted file mode 100644
index 87db8b9..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/jarsigner/JarSigner.java
+++ /dev/null
@@ -1,173 +0,0 @@
-/* JarSigner.java -- The signing handler of the gjarsigner tool
- Copyright (C) 2006 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-02110-1301 USA.
-
-Linking this library statically or dynamically with other modules is
-making a combined work based on this library. Thus, the terms and
-conditions of the GNU General Public License cover the whole
-combination.
-
-As a special exception, the copyright holders of this library give you
-permission to link this library with independent modules to produce an
-executable, regardless of the license terms of these independent
-modules, and to copy and distribute the resulting executable under
-terms of your choice, provided that you also meet, for each linked
-independent module, the terms and conditions of the license of that
-module. An independent module is a module which is not derived from
-or based on this library. If you modify this library, you may extend
-this exception to your version of the library, but 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.jarsigner;
-
-import gnu.classpath.Configuration;
-import gnu.classpath.SystemProperties;
-import gnu.java.util.jar.JarUtils;
-
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.Enumeration;
-import java.util.jar.JarEntry;
-import java.util.jar.JarFile;
-import java.util.jar.JarOutputStream;
-import java.util.logging.Logger;
-
-/**
- * The JAR signing handler of the gjarsigner tool.
- */
-public class JarSigner
-{
- private static final Logger log = Logger.getLogger(JarSigner.class.getName());
- /** The owner tool of this handler. */
- private Main main;
-
- JarSigner(Main main)
- {
- super();
-
- this.main = main;
- }
-
- void start() throws Exception
- {
- if (Configuration.DEBUG)
- log.entering(this.getClass().getName(), "start"); //$NON-NLS-1$
- JarFile jarFile = new JarFile(main.getJarFileName());
- SFHelper sfHelper = new SFHelper(jarFile);
-
- sfHelper.startSigning();
-
- // 1. compute the digests
- for (Enumeration e = jarFile.entries(); e.hasMoreElements(); )
- {
- JarEntry je = (JarEntry) e.nextElement();
- String jeName = je.getName();
- if (jeName.equals(JarFile.MANIFEST_NAME)
- || jeName.endsWith(File.separator))
- continue;
-
- sfHelper.updateEntry(je);
- if (main.isVerbose())
- System.out.println(Messages.getString("JarSigner.1") + jeName); //$NON-NLS-1$
- }
-
- sfHelper.finishSigning(main.isSectionsOnly());
- if (main.isVerbose())
- System.out.println(Messages.getString("JarSigner.2") + JarFile.MANIFEST_NAME); //$NON-NLS-1$
-
- // 2. write jar entries and manifest
- File signedJarFile = File.createTempFile("gcp-", ".jar"); //$NON-NLS-1$ //$NON-NLS-2$
- FileOutputStream fos = new FileOutputStream(signedJarFile);
- JarOutputStream outSignedJarFile = new JarOutputStream(fos,
- sfHelper.getManifest());
- for (Enumeration e = jarFile.entries(); e.hasMoreElements(); )
- {
- JarEntry je = (JarEntry) e.nextElement();
- String jeName = je.getName();
- if (jeName.equals(JarFile.MANIFEST_NAME)
- || jeName.endsWith(File.separator))
- continue;
-
- log.finest("Processing " + jeName); //$NON-NLS-1$
- JarEntry newEntry = new JarEntry(jeName);
- newEntry.setTime(je.getTime());
- outSignedJarFile.putNextEntry(newEntry);
- InputStream jeis = jarFile.getInputStream(je);
- copyFromTo(jeis, outSignedJarFile);
- }
-
- // 3. create the .SF file
- String signaturesFileName = main.getSigFileName();
- String sfFileName = JarUtils.META_INF + signaturesFileName
- + JarUtils.SF_SUFFIX;
- if (Configuration.DEBUG)
- log.fine("Processing " + sfFileName); //$NON-NLS-1$
- JarEntry sfEntry = new JarEntry(sfFileName);
- sfEntry.setTime(System.currentTimeMillis());
- outSignedJarFile.putNextEntry(sfEntry);
- sfHelper.writeSF(outSignedJarFile);
- if (Configuration.DEBUG)
- log.fine("Created .SF file"); //$NON-NLS-1$
- if (main.isVerbose())
- System.out.println(Messages.getString("JarSigner.8") + sfFileName); //$NON-NLS-1$
-
- // 4. create the .DSA file
- String dsaFileName = JarUtils.META_INF + signaturesFileName
- + JarUtils.DSA_SUFFIX;
- if (Configuration.DEBUG)
- log.fine("Processing " + dsaFileName); //$NON-NLS-1$
- JarEntry dsaEntry = new JarEntry(dsaFileName);
- dsaEntry.setTime(System.currentTimeMillis());
- outSignedJarFile.putNextEntry(dsaEntry);
- sfHelper.writeDSA(outSignedJarFile,
- main.getSignerPrivateKey(),
- main.getSignerCertificateChain(),
- main.isInternalSF());
- if (Configuration.DEBUG)
- log.fine("Created .DSA file"); //$NON-NLS-1$
- if (main.isVerbose())
- System.out.println(Messages.getString("JarSigner.8") + dsaFileName); //$NON-NLS-1$
-
- // cleanup
- outSignedJarFile.close();
- fos.close();
- signedJarFile.renameTo(new File(main.getSignedJarFileName()));
- if (Configuration.DEBUG)
- log.fine("Renamed signed JAR file"); //$NON-NLS-1$
- if (main.isVerbose())
- System.out.println(SystemProperties.getProperty("line.separator") //$NON-NLS-1$
- + Messages.getString("JarSigner.14")); //$NON-NLS-1$
- if (Configuration.DEBUG)
- log.exiting(this.getClass().getName(), "start"); //$NON-NLS-1$
- }
-
- private void copyFromTo(InputStream in, JarOutputStream out)
- throws IOException
- {
- byte[] buffer = new byte[8192];
- int n;
- while ((n = in.read(buffer)) != -1)
- if (n > 0)
- out.write(buffer, 0, n);
- }
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/jarsigner/JarVerifier.java b/libjava/classpath/tools/gnu/classpath/tools/jarsigner/JarVerifier.java
deleted file mode 100644
index b920d74..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/jarsigner/JarVerifier.java
+++ /dev/null
@@ -1,343 +0,0 @@
-/* JarVerifier.java -- The verification handler of the gjarsigner tool
- Copyright (C) 2006, 2007 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-02110-1301 USA.
-
-Linking this library statically or dynamically with other modules is
-making a combined work based on this library. Thus, the terms and
-conditions of the GNU General Public License cover the whole
-combination.
-
-As a special exception, the copyright holders of this library give you
-permission to link this library with independent modules to produce an
-executable, regardless of the license terms of these independent
-modules, and to copy and distribute the resulting executable under
-terms of your choice, provided that you also meet, for each linked
-independent module, the terms and conditions of the license of that
-module. An independent module is a module which is not derived from
-or based on this library. If you modify this library, you may extend
-this exception to your version of the library, but you are not
-obligated to do so. If you do not wish to do so, delete this
-exception statement from your version. */
-
-
-package gnu.classpath.tools.jarsigner;
-
-import gnu.classpath.Configuration;
-import gnu.java.security.OID;
-import gnu.java.security.Registry;
-import gnu.java.security.pkcs.PKCS7SignedData;
-import gnu.java.security.pkcs.SignerInfo;
-import gnu.java.security.sig.ISignature;
-import gnu.java.security.sig.ISignatureCodec;
-import gnu.java.security.sig.dss.DSSSignature;
-import gnu.java.security.sig.dss.DSSSignatureX509Codec;
-import gnu.java.security.sig.rsa.RSAPKCS1V1_5Signature;
-import gnu.java.security.sig.rsa.RSAPKCS1V1_5SignatureX509Codec;
-import gnu.java.security.util.Util;
-import gnu.java.util.jar.JarUtils;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.security.PublicKey;
-import java.security.cert.CRLException;
-import java.security.cert.Certificate;
-import java.security.cert.CertificateException;
-import java.util.ArrayList;
-import java.util.Enumeration;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.Map.Entry;
-import java.util.jar.Attributes;
-import java.util.jar.JarEntry;
-import java.util.jar.JarFile;
-import java.util.logging.Logger;
-import java.util.zip.ZipException;
-
-/**
- * The JAR verification handler of the gjarsigner tool.
- */
-public class JarVerifier
-{
- private static final Logger log = Logger.getLogger(JarVerifier.class.getName());
- /** The owner tool of this handler. */
- private Main main;
- private HashUtils util = new HashUtils();
- /** The JAR file to verify. */
- private JarFile jarFile;
- /** Map of jar entry names to their hash. */
- private Map entryHashes = new HashMap();
-
- JarVerifier(Main main)
- {
- super();
-
- this.main = main;
- }
-
- void start() throws Exception
- {
- if (Configuration.DEBUG)
- log.entering(this.getClass().getName(), "start"); //$NON-NLS-1$
- String jarFileName = main.getJarFileName();
- jarFile = new JarFile(jarFileName);
-
- // 1. find all signature (.SF) files
- List sfFiles = new ArrayList();
- for (Enumeration e = jarFile.entries(); e.hasMoreElements(); )
- {
- JarEntry je = (JarEntry) e.nextElement();
- String jeName = je.getName();
- if (! (jeName.startsWith(JarUtils.META_INF)
- && jeName.endsWith(JarUtils.SF_SUFFIX)))
- continue;
-
- // only interested in .SF files in, and not deeper than, META-INF
- String[] jeNameParts = jeName.split("/"); //$NON-NLS-1$
- if (jeNameParts.length != 2)
- continue;
-
- String sfName = jeNameParts[1];
- String sigFileName = sfName.substring(0, sfName.length() - 3);
- sfFiles.add(sigFileName);
- }
-
- // 2. verify each one
- if (sfFiles.isEmpty())
- System.out.println(Messages.getString("JarVerifier.2")); //$NON-NLS-1$
- else
- {
- int limit = sfFiles.size();
- int count = 0;
- for (String alias : sfFiles)
- if (verifySF(alias))
- if (verifySFEntries(alias))
- count++;
-
- if (count == 0)
- System.out.println(Messages.getString("JarVerifier.3")); //$NON-NLS-1$
- else if (count != limit)
- System.out.println(Messages.getFormattedString("JarVerifier.4", //$NON-NLS-1$
- new Integer[] {Integer.valueOf(count),
- Integer.valueOf(limit)}));
- else
- System.out.println(Messages.getFormattedString("JarVerifier.7", //$NON-NLS-1$
- Integer.valueOf(limit)));
- }
- if (Configuration.DEBUG)
- log.exiting(this.getClass().getName(), "start"); //$NON-NLS-1$
- }
-
- /**
- * @param sigFileName the name of the signature file; i.e. the name to use for
- * both the .SF and .DSA files.
- * @return true if the designated file-name (usually a key-store
- * alias name) has been successfully checked as the signer of the
- * corresponding .SF file. Returns false otherwise.
- * @throws IOException
- * @throws ZipException
- * @throws CertificateException
- * @throws CRLException
- */
- private boolean verifySF(String sigFileName) throws CRLException,
- CertificateException, ZipException, IOException
- {
- if (Configuration.DEBUG)
- {
- log.entering(this.getClass().getName(), "verifySF"); //$NON-NLS-1$
- log.fine("About to verify signature of " + sigFileName + "..."); //$NON-NLS-1$ //$NON-NLS-2$
- }
- // 1. find the corresponding .DSA file for this .SF file
- JarEntry dsaEntry = jarFile.getJarEntry(JarUtils.META_INF + sigFileName
- + JarUtils.DSA_SUFFIX);
- if (dsaEntry == null)
- throw new SecurityException(Messages.getFormattedString("JarVerifier.13", //$NON-NLS-1$
- sigFileName));
- // 2. read the .DSA file contents as a PKCS7 SignedData
- InputStream in = jarFile.getInputStream(dsaEntry);
- PKCS7SignedData pkcs7SignedData = new PKCS7SignedData(in);
-
- // 4. get the encrypted digest octet string from the first SignerInfo
- // this octet string is the digital signature of the .SF file contents
- Set signerInfos = pkcs7SignedData.getSignerInfos();
- if (signerInfos == null || signerInfos.isEmpty())
- throw new SecurityException(Messages.getString("JarVerifier.14")); //$NON-NLS-1$
-
- SignerInfo signerInfo = (SignerInfo) signerInfos.iterator().next();
- byte[] encryptedDigest = signerInfo.getEncryptedDigest();
- if (encryptedDigest == null)
- throw new SecurityException(Messages.getString("JarVerifier.16")); //$NON-NLS-1$
-
- if (Configuration.DEBUG)
- log.fine("\n" + Util.dumpString(encryptedDigest, "--- signedSFBytes ")); //$NON-NLS-1$ //$NON-NLS-2$
-
- // 5. get the signer public key
- Certificate cert = pkcs7SignedData.getCertificates()[0];
- PublicKey verifierKey = cert.getPublicKey();
- if (Configuration.DEBUG)
- log.fine("--- verifier public key = " + verifierKey); //$NON-NLS-1$
-
- // 6. verify the signature file signature
- OID digestEncryptionAlgorithmOID = signerInfo.getDigestEncryptionAlgorithmId();
- ISignature signatureAlgorithm;
- ISignatureCodec signatureCodec;
- if (digestEncryptionAlgorithmOID.equals(Main.DSA_SIGNATURE_OID))
- {
- signatureAlgorithm = new DSSSignature();
- signatureCodec = new DSSSignatureX509Codec();
- }
- else
- {
- signatureAlgorithm = new RSAPKCS1V1_5Signature(Registry.MD5_HASH);
- signatureCodec = new RSAPKCS1V1_5SignatureX509Codec();
- }
-
- Map signatureAttributes = new HashMap();
- signatureAttributes.put(ISignature.VERIFIER_KEY, verifierKey);
- signatureAlgorithm.setupVerify(signatureAttributes);
-
- Object herSignature = signatureCodec.decodeSignature(encryptedDigest);
-
- // 7. verify the signature file contents
- JarEntry sfEntry = jarFile.getJarEntry(JarUtils.META_INF + sigFileName
- + JarUtils.SF_SUFFIX);
- in = jarFile.getInputStream(sfEntry);
- byte[] buffer = new byte[2048];
- int n;
- while ((n = in.read(buffer)) != -1)
- if (n > 0)
- signatureAlgorithm.update(buffer, 0, n);
-
- boolean result = signatureAlgorithm.verify(herSignature);
- if (Configuration.DEBUG)
- {
- log.fine("Signature block [" + sigFileName + "] is " //$NON-NLS-1$ //$NON-NLS-2$
- + (result ? "" : "NOT ") + "OK"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- log.exiting(this.getClass().getName(), "verifySF", Boolean.valueOf(result)); //$NON-NLS-1$
- }
- return result;
- }
-
- /**
- * This method is called after at least one signer (usually a key-store
- * alias name) was found to be trusted; i.e. his/her signature
- * block in the corresponding .DSA file was successfully
- * verified using his/her public key.
- *
- * This method, uses the contents of the corresponding .SF file
- * to compute and verify the hashes of the manifest entries in the JAR file.
- *
- * @param alias the name of the signature file; i.e. the name to use for both
- * the .SF and .DSA files.
- * @return true if all the entries in the corresponding
- * .SF file have the same hash values as their
- * alter-ego in the manifest file of the JAR file inquestion.
- * @throws IOException if an I/O related exception occurs during the process.
- */
- private boolean verifySFEntries(String alias) throws IOException
- {
- if (Configuration.DEBUG)
- log.entering(this.getClass().getName(), "verifySFEntries"); //$NON-NLS-1$
- // 1. read the signature file
- JarEntry jarEntry = jarFile.getJarEntry(JarUtils.META_INF + alias
- + JarUtils.SF_SUFFIX);
- InputStream in = jarFile.getInputStream(jarEntry);
- Attributes attr = new Attributes();
- Map entries = new HashMap();
- JarUtils.readSFManifest(attr, entries, in);
-
- // 2. The .SF file by default includes a header containing a hash of the
- // entire manifest file. When the header is present, then the verification
- // can check to see whether or not the hash in the header indeed matches
- // the hash of the manifest file.
- boolean result = false;
- String hash = attr.getValue(Main.DIGEST_MANIFEST_ATTR);
- if (hash != null)
- result = verifyManifest(hash);
-
- // A verification is still considered successful if none of the files that
- // were in the JAR file when the signature was generated have been changed
- // since then, which is the case if the hashes in the non-header sections
- // of the .SF file equal the hashes of the corresponding sections in the
- // manifest file.
- //
- // 3. Read each file in the JAR file that has an entry in the .SF file.
- // While reading, compute the file's digest, and then compare the result
- // with the digest for this file in the manifest section. The digests
- // should be the same, or verification fails.
- if (! result)
- for (Entry me : entries.entrySet())
- {
- String name = me.getKey();
- attr = me.getValue();
- hash = attr.getValue(Main.DIGEST_ATTR);
- result = verifySFEntry(name, hash);
- if (! result)
- break;
- }
-
- if (Configuration.DEBUG)
- log.exiting(this.getClass().getName(), "verifySFEntries", //$NON-NLS-1$
- Boolean.valueOf(result));
- return result;
- }
-
- /**
- * @param hash Base-64 encoded form of the manifest's digest.
- * @return true if our computation of the manifest's hash
- * matches the given value; false otherwise.
- * @throws IOException if unable to acquire the JAR's manifest entry.
- */
- private boolean verifyManifest(String hash) throws IOException
- {
- return verifySFEntry(JarFile.MANIFEST_NAME, hash);
- }
-
- /**
- * @param name the name of a JAR entry to verify.
- * @param hash Base-64 encoded form of the designated entry's digest.
- * @return true if our computation of the JAR entry's hash
- * matches the given value; false otherwise.
- * @throws IOException if an exception occurs while returning the entry's
- * input stream.
- */
- private boolean verifySFEntry(String name, String hash) throws IOException
- {
- String expectedValue = getEntryHash(JarFile.MANIFEST_NAME);
- boolean result = expectedValue.equalsIgnoreCase(hash);
- if (Configuration.DEBUG)
- log.fine("Is " + name + " OK? " + result); //$NON-NLS-1$ //$NON-NLS-2$
- return result;
- }
-
- private String getEntryHash(String entryName) throws IOException
- {
- String result = (String) entryHashes.get(entryName);
- if (result == null)
- {
- JarEntry manifest = jarFile.getJarEntry(entryName);
- InputStream in = jarFile.getInputStream(manifest);
- result = util.hashStream(in);
- entryHashes.put(entryName, result);
- }
-
- return result;
- }
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/jarsigner/Main.java b/libjava/classpath/tools/gnu/classpath/tools/jarsigner/Main.java
deleted file mode 100644
index c7fb585..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/jarsigner/Main.java
+++ /dev/null
@@ -1,689 +0,0 @@
-/* Main.java -- JAR signing and verification tool not unlike jarsigner
- Copyright (C) 2006, 2007 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-02110-1301 USA.
-
-Linking this library statically or dynamically with other modules is
-making a combined work based on this library. Thus, the terms and
-conditions of the GNU General Public License cover the whole
-combination.
-
-As a special exception, the copyright holders of this library give you
-permission to link this library with independent modules to produce an
-executable, regardless of the license terms of these independent
-modules, and to copy and distribute the resulting executable under
-terms of your choice, provided that you also meet, for each linked
-independent module, the terms and conditions of the license of that
-module. An independent module is a module which is not derived from
-or based on this library. If you modify this library, you may extend
-this exception to your version of the library, but you are not
-obligated to do so. If you do not wish to do so, delete this
-exception statement from your version. */
-
-
-package 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.FileArgumentCallback;
-import gnu.classpath.tools.getopt.Option;
-import gnu.classpath.tools.getopt.OptionException;
-import gnu.classpath.tools.getopt.OptionGroup;
-import gnu.java.security.OID;
-import gnu.java.security.Registry;
-import gnu.javax.security.auth.callback.ConsoleCallbackHandler;
-
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.URL;
-import java.security.Key;
-import java.security.KeyStore;
-import java.security.KeyStoreException;
-import java.security.NoSuchAlgorithmException;
-import java.security.PrivateKey;
-import java.security.Provider;
-import java.security.Security;
-import java.security.UnrecoverableKeyException;
-import java.security.cert.Certificate;
-import java.security.cert.CertificateException;
-import java.util.ArrayList;
-import java.util.Locale;
-import java.util.jar.Attributes.Name;
-import java.util.logging.Logger;
-
-import javax.security.auth.callback.Callback;
-import javax.security.auth.callback.CallbackHandler;
-import javax.security.auth.callback.PasswordCallback;
-import javax.security.auth.callback.UnsupportedCallbackException;
-
-/**
- * The GNU Classpath implementation of the jarsigner tool.
- *
- * The jarsigner tool is used to sign and verify JAR (Java ARchive)
- * files.
- *
- * This implementation is intended to be compatible with the behaviour
- * described in the public documentation of the same tool included in JDK 1.4.
- */
-public class Main
-{
- protected static final Logger log = Logger.getLogger(Main.class.getName());
- static final String KEYTOOL_TOOL = "jarsigner"; //$NON-NLS-1$
- private static final Locale EN_US_LOCALE = new Locale("en", "US"); //$NON-NLS-1$ //$NON-NLS-2$
- static final String DIGEST = "SHA1-Digest"; //$NON-NLS-1$
- static final String DIGEST_MANIFEST = "SHA1-Digest-Manifest"; //$NON-NLS-1$
- static final Name DIGEST_ATTR = new Name(DIGEST);
- static final Name DIGEST_MANIFEST_ATTR = new Name(DIGEST_MANIFEST);
- static final OID DSA_SIGNATURE_OID = new OID(Registry.DSA_OID_STRING);
- static final OID RSA_SIGNATURE_OID = new OID(Registry.RSA_OID_STRING);
-
- protected boolean verify;
- protected String ksURL;
- protected String ksType;
- protected String password;
- protected String ksPassword;
- protected String sigFileName;
- protected String signedJarFileName;
- protected boolean verbose;
- protected boolean certs;
- protected boolean internalSF;
- protected boolean sectionsOnly;
- protected String providerClassName;
- protected String jarFileName;
- protected String alias;
-
- protected Provider provider;
- private boolean providerInstalled;
- private char[] ksPasswordChars;
- private KeyStore store;
- private char[] passwordChars;
- private PrivateKey signerPrivateKey;
- private Certificate[] signerCertificateChain;
- /** The callback handler to use when needing to interact with user. */
- private CallbackHandler handler;
- /** The command line parser. */
- private ToolParser cmdLineParser;
- protected ArrayList fileAndAlias = new ArrayList();
-
- private Main()
- {
- super();
- }
-
- public static final void main(String[] args)
- {
- if (Configuration.DEBUG)
- log.entering(Main.class.getName(), "main", args); //$NON-NLS-1$
- Main tool = new Main();
- int result = 1;
- try
- {
- tool.processArgs(args);
- tool.start();
- result = 0;
- }
- catch (SecurityException x)
- {
- if (Configuration.DEBUG)
- log.throwing(Main.class.getName(), "main", x); //$NON-NLS-1$
- System.err.println(Messages.getString("Main.7") + x.getMessage()); //$NON-NLS-1$
- }
- catch (Exception x)
- {
- if (Configuration.DEBUG)
- log.throwing(Main.class.getName(), "main", x); //$NON-NLS-1$
- System.err.println(Messages.getString("Main.9") + x); //$NON-NLS-1$
- }
- finally
- {
- tool.teardown();
- }
- if (Configuration.DEBUG)
- log.exiting(Main.class.getName(), "main", Integer.valueOf(result)); //$NON-NLS-1$
- System.exit(result);
- }
-
- /**
- * Read the command line arguments setting the tool's parameters in
- * preparation for the user desired action.
- *
- * @param args an array of options (strings).
- * @throws Exception if an exception occurs during the process.
- */
- private void processArgs(String[] args) throws Exception
- {
- if (Configuration.DEBUG)
- log.entering(this.getClass().getName(), "processArgs", args); //$NON-NLS-1$
- cmdLineParser = new ToolParser();
- cmdLineParser.initializeParser();
- cmdLineParser.parse(args, new ToolParserCallback());
-
- setupCommonParams();
- if (verify)
- {
- if (Configuration.DEBUG)
- {
- log.fine("Will verify with the following parameters:"); //$NON-NLS-1$
- log.fine(" jar-file = '" + jarFileName + "'"); //$NON-NLS-1$ //$NON-NLS-2$
- log.fine("Options:"); //$NON-NLS-1$
- log.fine(" provider = '" + providerClassName + "'"); //$NON-NLS-1$ //$NON-NLS-2$
- log.fine(" verbose ? " + verbose); //$NON-NLS-1$
- log.fine(" certs ? " + certs); //$NON-NLS-1$
- log.fine(" internalsf ? " + internalSF); //$NON-NLS-1$
- log.fine(" sectionsonly ? " + sectionsOnly); //$NON-NLS-1$
- }
- }
- else // sign
- {
- setupSigningParams();
- if (Configuration.DEBUG)
- {
- log.fine("Will sign with the following parameters:"); //$NON-NLS-1$
- log.fine(" jar-file = '" + jarFileName + "'"); //$NON-NLS-1$ //$NON-NLS-2$
- log.fine(" alias = '" + alias + "'"); //$NON-NLS-1$ //$NON-NLS-2$
- log.fine("Options:"); //$NON-NLS-1$
- log.fine(" keystore = '" + ksURL + "'"); //$NON-NLS-1$ //$NON-NLS-2$
- log.fine(" storetype = '" + ksType + "'"); //$NON-NLS-1$ //$NON-NLS-2$
- log.fine(" storepass = '" + ksPassword + "'"); //$NON-NLS-1$ //$NON-NLS-2$
- log.fine(" keypass = '" + password + "'"); //$NON-NLS-1$ //$NON-NLS-2$
- log.fine(" sigfile = '" + sigFileName + "'"); //$NON-NLS-1$ //$NON-NLS-2$
- log.fine(" signedjar = '" + signedJarFileName + "'"); //$NON-NLS-1$ //$NON-NLS-2$
- log.fine(" provider = '" + providerClassName + "'"); //$NON-NLS-1$ //$NON-NLS-2$
- log.fine(" verbose ? " + verbose); //$NON-NLS-1$
- log.fine(" internalsf ? " + internalSF); //$NON-NLS-1$
- log.fine(" sectionsonly ? " + sectionsOnly); //$NON-NLS-1$
- }
- }
- if (Configuration.DEBUG)
- log.exiting(this.getClass().getName(), "processArgs"); //$NON-NLS-1$
- }
-
- /**
- * Invokes the start() method of the concrete handler.
- *
- * Depending on the result of processing the command line arguments, this
- * handler may be one for signing the jar, or verifying it.
- *
- * @throws Exception if an exception occurs during the process.
- */
- private void start() throws Exception
- {
- if (Configuration.DEBUG)
- log.entering(this.getClass().getName(), "start"); //$NON-NLS-1$
- if (verify)
- {
- JarVerifier jv = new JarVerifier(this);
- jv.start();
- }
- else
- {
- JarSigner js = new JarSigner(this);
- js.start();
- }
- if (Configuration.DEBUG)
- log.exiting(this.getClass().getName(), "start"); //$NON-NLS-1$
- }
-
- /**
- * Ensures that the underlying JVM is left in the same state as we found it
- * when we first launched the tool. Specifically, if we have installed a new
- * security provider then now is the time to remove it.
- *
- * Note (rsn): this may not be necessary if we terminate the JVM; i.e. call
- * {@link System#exit(int)} at the end of the tool's invocation. Nevertheless
- * it's good practive to return the JVM to its initial state.
- */
- private void teardown()
- {
- if (Configuration.DEBUG)
- log.entering(this.getClass().getName(), "teardown"); //$NON-NLS-1$
- if (providerInstalled)
- ProviderUtil.removeProvider(provider.getName());
-
- if (Configuration.DEBUG)
- log.exiting(this.getClass().getName(), "teardown"); //$NON-NLS-1$
- }
-
- /**
- * After processing the command line arguments, this method is invoked to
- * process the common parameters which may have been encountered among the
- * actual arguments.
- *
- * Common parameters are those which are allowed in both signing and
- * verification modes.
- *
- * @throws InstantiationException if a security provider class name is
- * specified but that class name is that of either an interface or
- * an abstract class.
- * @throws IllegalAccessException if a security provider class name is
- * specified but no 0-arguments constructor is defined for that
- * class.
- * @throws ClassNotFoundException if a security provider class name is
- * specified but no such class was found in the classpath.
- * @throws IOException if the JAR file name for signing, or verifying, does
- * not exist, exists but denotes a directory, or is not readable.
- */
- private void setupCommonParams() throws InstantiationException,
- IllegalAccessException, ClassNotFoundException, IOException
- {
- if (Configuration.DEBUG)
- log.entering(this.getClass().getName(), "setupCommonParams"); //$NON-NLS-1$
- File jar = new File(jarFileName);
- if (! jar.exists())
- throw new FileNotFoundException(jarFileName);
-
- if (jar.isDirectory())
- throw new IOException(Messages.getFormattedString("Main.70", jarFileName)); //$NON-NLS-1$
-
- if (! jar.canRead())
- throw new IOException(Messages.getFormattedString("Main.72", jarFileName)); //$NON-NLS-1$ //$NON-NLS-2$
-
- if (providerClassName != null && providerClassName.length() > 0)
- {
- provider = (Provider) Class.forName(providerClassName).newInstance();
- // is it already installed?
- String providerName = provider.getName();
- Provider installedProvider = Security.getProvider(providerName);
- if (installedProvider != null)
- {
- if (Configuration.DEBUG)
- log.finer("Provider " + providerName + " is already installed"); //$NON-NLS-1$ //$NON-NLS-2$
- }
- else // install it
- installNewProvider();
- }
-
- if (! verbose && certs)
- {
- if (Configuration.DEBUG)
- log.fine("Option is set but is not. Ignored"); //$NON-NLS-1$
- certs = false;
- }
-
- if (Configuration.DEBUG)
- log.exiting(this.getClass().getName(), "setupCommonParams"); //$NON-NLS-1$
- }
-
- /**
- * Install the user defined security provider in the underlying JVM.
- *
- * Also record this fact so we can remove it when we exit the tool.
- */
- private void installNewProvider()
- {
- if (Configuration.DEBUG)
- log.entering(this.getClass().getName(), "installNewProvider"); //$NON-NLS-1$
- providerInstalled = ProviderUtil.addProvider(provider) != -1;
- if (Configuration.DEBUG)
- log.exiting(this.getClass().getName(), "installNewProvider"); //$NON-NLS-1$
- }
-
- /**
- * After processing the command line arguments, this method is invoked to
- * process the parameters which may have been encountered among the actual
- * arguments, and which are specific to the signing action of the tool.
- *
- * @throws KeyStoreException if no implementation of the designated (or
- * default type) of a key store is availabe.
- * @throws IOException if an I/O related exception occurs during the process.
- * @throws NoSuchAlgorithmException if an implementation of an algorithm used
- * by the key store is not available.
- * @throws CertificateException if an exception occurs while reading a
- * certificate from the key store.
- * @throws UnsupportedCallbackException if no implementation of a password
- * callback is available.
- * @throws UnrecoverableKeyException if the wrong password was used to unlock
- * the key store.
- * @throws SecurityException if the designated alias is not known to the key
- * store or is not an Alias of a Key Entry.
- */
- private void setupSigningParams() throws KeyStoreException, IOException,
- NoSuchAlgorithmException, CertificateException,
- UnsupportedCallbackException, UnrecoverableKeyException
- {
- if (Configuration.DEBUG)
- log.entering(this.getClass().getName(), "setupSigningParams"); //$NON-NLS-1$
- if (ksURL == null || ksURL.trim().length() == 0)
- {
- String userHome = SystemProperties.getProperty("user.home"); //$NON-NLS-1$
- if (userHome == null || userHome.trim().length() == 0)
- throw new SecurityException(Messages.getString("Main.85")); //$NON-NLS-1$
-
- ksURL = "file:" + userHome.trim() + "/.keystore"; //$NON-NLS-1$ //$NON-NLS-2$
- }
- else
- {
- ksURL = ksURL.trim();
- if (ksURL.indexOf(":") == -1) //$NON-NLS-1$
- ksURL = "file:" + ksURL; //$NON-NLS-1$
- }
-
- if (ksType == null || ksType.trim().length() == 0)
- ksType = KeyStore.getDefaultType();
- else
- ksType = ksType.trim();
-
- store = KeyStore.getInstance(ksType);
-
- if (ksPassword == null)
- {
- // ask the user to provide one
- PasswordCallback pcb = new PasswordCallback(Messages.getString("Main.92"), //$NON-NLS-1$
- false);
- getCallbackHandler().handle(new Callback[] { pcb });
- ksPasswordChars = pcb.getPassword();
- }
- else
- ksPasswordChars = ksPassword.toCharArray();
-
- URL url = new URL(ksURL);
- InputStream stream = url.openStream();
- store.load(stream, ksPasswordChars);
-
- if (! store.containsAlias(alias))
- throw new SecurityException(Messages.getFormattedString("Main.6", alias)); //$NON-NLS-1$
-
- if (! store.isKeyEntry(alias))
- throw new SecurityException(Messages.getFormattedString("Main.95", alias)); //$NON-NLS-1$
-
- Key key;
- if (password == null)
- {
- passwordChars = ksPasswordChars;
- try
- {
- key = store.getKey(alias, passwordChars);
- }
- catch (UnrecoverableKeyException x)
- {
- // ask the user to provide one
- String prompt = Messages.getFormattedString("Main.97", alias); //$NON-NLS-1$
- PasswordCallback pcb = new PasswordCallback(prompt, false);
- getCallbackHandler().handle(new Callback[] { pcb });
- passwordChars = pcb.getPassword();
- // take 2
- key = store.getKey(alias, passwordChars);
- }
- }
- else
- {
- passwordChars = password.toCharArray();
- key = store.getKey(alias, passwordChars);
- }
-
- if (! (key instanceof PrivateKey))
- throw new SecurityException(Messages.getFormattedString("Main.99", alias)); //$NON-NLS-1$
-
- signerPrivateKey = (PrivateKey) key;
- signerCertificateChain = store.getCertificateChain(alias);
- if (Configuration.DEBUG)
- log.fine(String.valueOf(signerCertificateChain));
-
- if (sigFileName == null)
- sigFileName = alias;
-
- sigFileName = sigFileName.toUpperCase(EN_US_LOCALE);
- if (sigFileName.length() > 8)
- sigFileName = sigFileName.substring(0, 8);
-
- char[] chars = sigFileName.toCharArray();
- for (int i = 0; i < chars.length; i++)
- {
- char c = chars[i];
- if (! (Character.isLetter(c)
- || Character.isDigit(c)
- || c == '_'
- || c == '-'))
- chars[i] = '_';
- }
-
- sigFileName = new String(chars);
-
- if (signedJarFileName == null)
- signedJarFileName = jarFileName;
-
- if (Configuration.DEBUG)
- log.exiting(this.getClass().getName(), "setupSigningParams"); //$NON-NLS-1$
- }
-
- boolean isVerbose()
- {
- return verbose;
- }
-
- boolean isCerts()
- {
- return certs;
- }
-
- String getSigFileName()
- {
- return this.sigFileName;
- }
-
- String getJarFileName()
- {
- return this.jarFileName;
- }
-
- boolean isSectionsOnly()
- {
- return this.sectionsOnly;
- }
-
- boolean isInternalSF()
- {
- return this.internalSF;
- }
-
- PrivateKey getSignerPrivateKey()
- {
- return this.signerPrivateKey;
- }
-
- Certificate[] getSignerCertificateChain()
- {
- return signerCertificateChain;
- }
-
- String getSignedJarFileName()
- {
- return this.signedJarFileName;
- }
-
- /**
- * Return a CallbackHandler which uses the Console (System.in and System.out)
- * for interacting with the user.
- *
- * This method first finds all currently installed security providers capable
- * of providing such service and then in turn attempts to instantiate the
- * handler from those providers. As soon as one provider returns a non-null
- * instance of the callback handler, the search stops and that instance is
- * set to be used from now on.
- *
- * 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}.
- *
- * @return a console-based {@link CallbackHandler}.
- */
- protected CallbackHandler getCallbackHandler()
- {
- if (handler == null)
- handler = CallbackUtil.getConsoleHandler();
-
- return handler;
- }
-
- private class ToolParserCallback
- extends FileArgumentCallback
- {
- public void notifyFile(String fileArgument)
- {
- fileAndAlias.add(fileArgument);
- }
- }
-
- private class ToolParser
- extends ClasspathToolParser
- {
- public ToolParser()
- {
- super(KEYTOOL_TOOL, true);
- }
-
- protected void validate() throws OptionException
- {
- if (fileAndAlias.size() < 1)
- throw new OptionException(Messages.getString("Main.133")); //$NON-NLS-1$
-
- jarFileName = (String) fileAndAlias.get(0);
- if (! verify) // must have an ALIAS. use "mykey" if undefined
- if (fileAndAlias.size() < 2)
- {
- if (Configuration.DEBUG)
- log.fine("Missing ALIAS argument. Will use [mykey] instead"); //$NON-NLS-1$
- alias = "mykey"; //$NON-NLS-1$
- }
- else
- alias = fileAndAlias.get(1);
- }
-
- public void initializeParser()
- {
- setHeader(Messages.getString("Main.2")); //$NON-NLS-1$
- setFooter(Messages.getString("Main.1")); //$NON-NLS-1$
- OptionGroup signGroup = new OptionGroup(Messages.getString("Main.0")); //$NON-NLS-1$
- signGroup.add(new Option("keystore", //$NON-NLS-1$
- Messages.getString("Main.101"), //$NON-NLS-1$
- Messages.getString("Main.102")) //$NON-NLS-1$
- {
- public void parsed(String argument) throws OptionException
- {
- ksURL = argument;
- }
- });
- signGroup.add(new Option("storetype", //$NON-NLS-1$
- Messages.getString("Main.104"), //$NON-NLS-1$
- Messages.getString("Main.105")) //$NON-NLS-1$
- {
- public void parsed(String argument) throws OptionException
- {
- ksType = argument;
- }
- });
- signGroup.add(new Option("storepass", //$NON-NLS-1$
- Messages.getString("Main.107"), //$NON-NLS-1$
- Messages.getString("Main.108")) //$NON-NLS-1$
- {
- public void parsed(String argument) throws OptionException
- {
- ksPassword = argument;
- }
- });
- signGroup.add(new Option("keypass", //$NON-NLS-1$
- Messages.getString("Main.110"), //$NON-NLS-1$
- Messages.getString("Main.111")) //$NON-NLS-1$
- {
- public void parsed(String argument) throws OptionException
- {
- password = argument;
- }
- });
- signGroup.add(new Option("sigfile", //$NON-NLS-1$
- Messages.getString("Main.113"), //$NON-NLS-1$
- Messages.getString("Main.114")) //$NON-NLS-1$
- {
- public void parsed(String argument) throws OptionException
- {
- sigFileName = argument;
- }
- });
- signGroup.add(new Option("signedjar", //$NON-NLS-1$
- Messages.getString("Main.116"), //$NON-NLS-1$
- Messages.getString("Main.117")) //$NON-NLS-1$
- {
- public void parsed(String argument) throws OptionException
- {
- signedJarFileName = argument;
- }
- });
- add(signGroup);
-
- OptionGroup verifyGroup = new OptionGroup(Messages.getString("Main.118")); //$NON-NLS-1$
- verifyGroup.add(new Option("verify", //$NON-NLS-1$
- Messages.getString("Main.120")) //$NON-NLS-1$
- {
- public void parsed(String argument) throws OptionException
- {
- verify = true;
- }
- });
- verifyGroup.add(new Option("certs", //$NON-NLS-1$
- Messages.getString("Main.122")) //$NON-NLS-1$
- {
- public void parsed(String argument) throws OptionException
- {
- certs = true;
- }
- });
- add(verifyGroup);
-
- OptionGroup commonGroup = new OptionGroup(Messages.getString("Main.123")); //$NON-NLS-1$
- commonGroup.add(new Option("verbose", //$NON-NLS-1$
- Messages.getString("Main.125")) //$NON-NLS-1$
- {
- public void parsed(String argument) throws OptionException
- {
- verbose = true;
- }
- });
- commonGroup.add(new Option("internalsf", //$NON-NLS-1$
- Messages.getString("Main.127")) //$NON-NLS-1$
- {
- public void parsed(String argument) throws OptionException
- {
- internalSF = true;
- }
- });
- commonGroup.add(new Option("sectionsonly", //$NON-NLS-1$
- Messages.getString("Main.129")) //$NON-NLS-1$
- {
- public void parsed(String argument) throws OptionException
- {
- sectionsOnly = true;
- }
- });
- commonGroup.add(new Option("provider", //$NON-NLS-1$
- Messages.getString("Main.131"), //$NON-NLS-1$
- Messages.getString("Main.132")) //$NON-NLS-1$
- {
- public void parsed(String argument) throws OptionException
- {
- providerClassName = argument;
- }
- });
- add(commonGroup);
- }
- }
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/jarsigner/Messages.java b/libjava/classpath/tools/gnu/classpath/tools/jarsigner/Messages.java
deleted file mode 100644
index f27f79e..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/jarsigner/Messages.java
+++ /dev/null
@@ -1,119 +0,0 @@
-/* Messages.java -- I18N related helper class
- Copyright (C) 2006, 2007 Free Software Foundation, Inc.
-
- This file is part of GNU Classpath.
-
- GNU Classpath is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2, or (at your option)
- any later version.
-
- GNU Classpath is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with GNU Classpath; see the file COPYING. If not, write to the
- Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
- 02110-1301 USA.
-
- Linking this library statically or dynamically with other modules is
- making a combined work based on this library. Thus, the terms and
- conditions of the GNU General Public License cover the whole
- combination.
-
- As a special exception, the copyright holders of this library give you
- permission to link this library with independent modules to produce an
- executable, regardless of the license terms of these independent
- modules, and to copy and distribute the resulting executable under
- terms of your choice, provided that you also meet, for each linked
- independent module, the terms and conditions of the license of that
- module. An independent module is a module which is not derived from
- or based on this library. If you modify this library, you may extend
- this exception to your version of the library, but you are not
- obligated to do so. If you do not wish to do so, delete this
- exception statement from your version. */
-
-
-package gnu.classpath.tools.jarsigner;
-
-import gnu.classpath.Configuration;
-
-import java.text.MessageFormat;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.MissingResourceException;
-import java.util.ResourceBundle;
-import java.util.logging.Logger;
-
-/**
- * An initially generated Eclipse helper class to ease the use of localized
- * messages.
- *
- * Enriched to handle localized message formats.
- */
-class Messages
-{
- private static final Logger log = Logger.getLogger(Messages.class.getName());
- private static final String BUNDLE_NAME = "gnu.classpath.tools.jarsigner.messages";
- private static final ResourceBundle RESOURCE_BUNDLE = ResourceBundle.getBundle(BUNDLE_NAME);
- private static final Map CACHED_FORMATS =
- new HashMap(5);
-
- private Messages()
- {
- super();
- }
-
- public static String getString(String key)
- {
- try
- {
- return RESOURCE_BUNDLE.getString(key);
- }
- catch (MissingResourceException e)
- {
- return constructMessage(key, null);
- }
- }
-
- public static String getFormattedString(String key, Object args)
- {
- MessageFormat mf = CACHED_FORMATS.get(key);
- if (mf == null)
- {
- String formatString = getString(key);
- if (formatString.startsWith("!"))
- return constructMessage(key, args);
-
- mf = new MessageFormat(formatString);
- CACHED_FORMATS.put(key, mf);
- }
-
- // if the argument is not an array, then build one consisting of the
- // sole argument before passing it to the format() method
- try
- {
- if (args instanceof Object[])
- return mf.format(args);
-
- return mf.format(new Object[] { args });
- }
- catch (IllegalArgumentException x)
- {
- if (Configuration.DEBUG)
- log.fine("Exception while rendering a message format keyed by ["
- + key + "]: " + mf.toPattern());
- return constructMessage(mf.toPattern(), args);
- }
- }
-
- private static final String constructMessage(String m, Object args)
- {
- if (args == null)
- return '!' + m + '!';
-
- return '!' + m + '!' + String.valueOf(args) + '!';
- }
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/jarsigner/SFHelper.java b/libjava/classpath/tools/gnu/classpath/tools/jarsigner/SFHelper.java
deleted file mode 100644
index 9e4882f..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/jarsigner/SFHelper.java
+++ /dev/null
@@ -1,491 +0,0 @@
-/* SFHelper -- A .SF file helper
- Copyright (C) 2006, 2007 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-02110-1301 USA.
-
-Linking this library statically or dynamically with other modules is
-making a combined work based on this library. Thus, the terms and
-conditions of the GNU General Public License cover the whole
-combination.
-
-As a special exception, the copyright holders of this library give you
-permission to link this library with independent modules to produce an
-executable, regardless of the license terms of these independent
-modules, and to copy and distribute the resulting executable under
-terms of your choice, provided that you also meet, for each linked
-independent module, the terms and conditions of the license of that
-module. An independent module is a module which is not derived from
-or based on this library. If you modify this library, you may extend
-this exception to your version of the library, but you are not
-obligated to do so. If you do not wish to do so, delete this
-exception statement from your version. */
-
-
-package gnu.classpath.tools.jarsigner;
-
-import gnu.classpath.Configuration;
-import gnu.java.security.OID;
-import gnu.java.security.Registry;
-import gnu.java.security.der.DER;
-import gnu.java.security.der.DERValue;
-import gnu.java.security.pkcs.PKCS7Data;
-import gnu.java.security.pkcs.PKCS7SignedData;
-import gnu.java.security.pkcs.SignerInfo;
-import gnu.java.security.sig.ISignature;
-import gnu.java.security.sig.ISignatureCodec;
-import gnu.java.security.sig.dss.DSSSignature;
-import gnu.java.security.sig.dss.DSSSignatureX509Codec;
-import gnu.java.security.sig.rsa.RSAPKCS1V1_5Signature;
-import gnu.java.security.sig.rsa.RSAPKCS1V1_5SignatureX509Codec;
-import gnu.java.security.util.Util;
-import gnu.java.util.jar.JarUtils;
-
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.math.BigInteger;
-import java.security.PrivateKey;
-import java.security.cert.CRLException;
-import java.security.cert.Certificate;
-import java.security.cert.CertificateEncodingException;
-import java.security.cert.CertificateExpiredException;
-import java.security.cert.CertificateNotYetValidException;
-import java.security.cert.X509CRL;
-import java.security.interfaces.DSAPrivateKey;
-import java.security.interfaces.RSAPrivateKey;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.jar.Attributes;
-import java.util.jar.JarEntry;
-import java.util.jar.JarFile;
-import java.util.jar.JarOutputStream;
-import java.util.jar.Manifest;
-import java.util.logging.Logger;
-
-import javax.security.auth.x500.X500Principal;
-import java.security.cert.X509Certificate;
-
-/**
- * A helper class for the .SF file found in signed jars.
- */
-public class SFHelper
-{
- private static final Logger log = Logger.getLogger(SFHelper.class.getName());
- private static final int READY = 0;
- private static final int STARTED = 1;
- private static final int FINISHED = 2;
- private static final int SF_GENERATED = 3;
- private static final int DSA_GENERATED = 4;
- /** http://asn1.elibel.tm.fr/cgi-bin/oid/display?oid=1.3.14.3.2.26&action=display */
- private static final OID hashAlgorithmIdentifierSHA1 = new OID("1.3.14.3.2.26"); //$NON-NLS-1$
-
- private int state;
- private JarFile jar;
- private Manifest manifest;
- private Attributes sfMainAttributes;
- private Map sfEntries;
- private byte[] sfBytes;
- private HashUtils util;
-
- /**
- * @param jar the JAR archive the .SF file belongs to.
- */
- public SFHelper(JarFile jar)
- {
- super();
-
- this.jar = jar;
- this.state = READY;
- }
-
- /**
- * Writes the contents of the .SF file to the designated JAR
- * output stream. Line-endings are platform-independent and consist of the
- * 2-codepoint sequence 0x0D and 0x0A.
- *
- * @param jar the JAR output stream to write a .SF file to.
- * @throws IOException if an I/O related exception occurs during the process.
- */
- void writeSF(JarOutputStream jar) throws IOException
- {
- if (this.state != FINISHED)
- throw new IllegalStateException(Messages.getString("SFHelper.1")); //$NON-NLS-1$
-
- ByteArrayOutputStream baos = new ByteArrayOutputStream();
- JarUtils.writeSFManifest(sfMainAttributes, sfEntries, baos);
- sfBytes = baos.toByteArray();
- if (Configuration.DEBUG)
- log.fine("\n" + Util.dumpString(sfBytes, "+++ sfBytes ")); //$NON-NLS-1$ //$NON-NLS-2$
- jar.write(sfBytes);
- jar.flush();
-
- this.state = SF_GENERATED;
- }
-
- /**
- * The contents of the .DSA file is the DER encoded form of a PKCS#7
- * ContentInfo of the type SignedData.
- *
- * The ContentInfo ASN.1 syntax is as described in the "PKCS#7 Cryptographic
- * Message Syntax Standard" (RSA Labs) specifications:
- *
- * The ContentType is an OID which determines the type of the contents field
- * that follows it. For the .DSA file the OID is "1.2.840.113549.1.7.2", while
- * the content field is the byte array representing the DER encoded form of a
- * SignedData content-type. The ASN.1 syntax of the SignedData type is as
- * follows:
- *
- *
- * @param jar the JAR output stream to write a .DSA file to.
- * @param signerKey the private key to sign with.
- * @param certificates the possibly null signer certificate chain.
- * @param internalSF if true then include the .SF file contents
- * in the signed .DSA file; otherwise don't.
- * @throws IOException if an I/O related exception occurs during the process.
- * @throws CRLException
- * @throws CertificateEncodingException
- */
- void writeDSA(JarOutputStream jar, PrivateKey signerKey,
- Certificate[] certificates, boolean internalSF)
- throws IOException, CertificateEncodingException, CRLException
- {
- if (this.state != SF_GENERATED)
- throw new IllegalStateException(Messages.getString("SFHelper.4")); //$NON-NLS-1$
-
- if (Configuration.DEBUG)
- log.fine("+++ signer private key = " + signerKey); //$NON-NLS-1$
- ISignature signatureAlgorithm;
- ISignatureCodec signatureCodec;
- OID digestEncryptionAlgorithmOID;
- if (signerKey instanceof DSAPrivateKey)
- {
- signatureAlgorithm = new DSSSignature();
- signatureCodec = new DSSSignatureX509Codec();
- digestEncryptionAlgorithmOID = Main.DSA_SIGNATURE_OID;
- }
- else if (signerKey instanceof RSAPrivateKey)
- {
- signatureAlgorithm = new RSAPKCS1V1_5Signature(Registry.MD5_HASH);
- signatureCodec = new RSAPKCS1V1_5SignatureX509Codec();
- digestEncryptionAlgorithmOID = Main.RSA_SIGNATURE_OID;
- }
- else
- throw new SecurityException(Messages.getString("SFHelper.6")); //$NON-NLS-1$
-
- Map signatureAttributes = new HashMap();
- signatureAttributes.put(ISignature.SIGNER_KEY, signerKey);
- signatureAlgorithm.setupSign(signatureAttributes);
- signatureAlgorithm.update(sfBytes, 0, sfBytes.length);
- Object signature = signatureAlgorithm.sign();
- byte[] signedSFBytes = signatureCodec.encodeSignature(signature);
- if (Configuration.DEBUG)
- log.fine("\n" + Util.dumpString(signedSFBytes, "+++ signedSFBytes ")); //$NON-NLS-1$ //$NON-NLS-2$
-
- Set digestAlgorithms = new HashSet();
- List digestAlgorithm = new ArrayList(2);
- DERValue derDigestAlgorithmOID = new DERValue(DER.OBJECT_IDENTIFIER,
- hashAlgorithmIdentifierSHA1);
- DERValue derDigestAlgorithmParams = new DERValue(DER.NULL, null);
- digestAlgorithm.add(derDigestAlgorithmOID);
- digestAlgorithm.add(derDigestAlgorithmParams);
- DERValue derDigestAlgorithm = new DERValue(DER.CONSTRUCTED | DER.SEQUENCE,
- digestAlgorithm);
- digestAlgorithms.add(derDigestAlgorithm);
-
- // TODO (rsn): test with internalsf == true
- PKCS7Data data = internalSF ? new PKCS7Data(sfBytes) : null;
-
- X509CRL[] crls = null;
-
- Set signerInfos = new HashSet();
- X509Certificate cert = (X509Certificate) certificates[0];
- try
- {
- cert.checkValidity();
- }
- catch (CertificateExpiredException x)
- {
- String issuerName = getIssuerName(cert);
- String subjectName = getSubjectName(cert);
- Date notAfterDate = getNotAfterDate(cert);
- System.out.println(Messages.getFormattedString("SFHelper.0", //$NON-NLS-1$
- new Object[] { issuerName,
- subjectName,
- notAfterDate }));
- }
- catch (CertificateNotYetValidException x)
- {
- String issuerName = getIssuerName(cert);
- String subjectName = getSubjectName(cert);
- Date notBeforeDate = getNotBeforeDate(cert);
- System.out.println(Messages.getFormattedString("SFHelper.11", //$NON-NLS-1$
- new Object[] { issuerName,
- subjectName,
- notBeforeDate }));
- }
- X500Principal issuer = cert.getIssuerX500Principal();
- BigInteger serialNumber = cert.getSerialNumber();
- byte[] authenticatedAttributes = null;
- byte[] encryptedDigest = signedSFBytes;
- byte[] unauthenticatedAttributes = null;
- SignerInfo signerInfo = new SignerInfo(issuer,
- serialNumber,
- hashAlgorithmIdentifierSHA1,
- authenticatedAttributes,
- digestEncryptionAlgorithmOID,
- encryptedDigest,
- unauthenticatedAttributes);
- signerInfos.add(signerInfo);
-
- PKCS7SignedData dsaContents = new PKCS7SignedData(digestAlgorithms,
- data,
- certificates,
- crls,
- signerInfos);
- dsaContents.encode(jar);
-
- jar.flush();
- this.state = DSA_GENERATED;
- }
-
- Manifest getManifest()
- {
- return this.manifest;
- }
-
- void startSigning() throws IOException
- {
- if (this.state != READY)
- throw new IllegalStateException(Messages.getString("SFHelper.9")); //$NON-NLS-1$
-
- Manifest oldManifest = jar.getManifest();
- this.manifest = oldManifest == null ? new Manifest()
- : new Manifest(oldManifest);
- this.sfMainAttributes = new Attributes();
- this.sfEntries = new HashMap();
- util = new HashUtils();
-
- this.state = STARTED;
- }
-
- /**
- * Hashes the designated JAR entry (the file itself); adds the resulting hash
- * as an attribute to the manifest, and computes the hash of the added (to
- * the Manifest) two headers and add the result as an attribute of the
- * corresponding entry in the .SF file.
- */
- void updateEntry(JarEntry entry) throws IOException
- {
- if (this.state != STARTED)
- throw new IllegalStateException(Messages.getString("SFHelper.10")); //$NON-NLS-1$
-
- String name = entry.getName();
- InputStream jeis = jar.getInputStream(entry);
- String hash = util.hashStream(jeis);
- if (Configuration.DEBUG)
- log.fine("Hash of " + name + " = " + hash); //$NON-NLS-1$ //$NON-NLS-2$
-
- Attributes mainfestAttributes = manifest.getAttributes(name);
- if (mainfestAttributes == null)
- {
- mainfestAttributes = new Attributes();
- manifest.getEntries().put(name, mainfestAttributes);
- }
-
- mainfestAttributes.putValue(Main.DIGEST, hash);
-
- // hash the newly added 2-header block and add it as an attribute to .SF
-
- String sfHash = util.hashManifestEntry(name, hash);
- Attributes sfAttributes = sfEntries.get(name);
- if (sfAttributes == null)
- {
- sfAttributes = new Attributes();
- sfEntries.put(name, sfAttributes);
- }
-
- sfAttributes.putValue(Main.DIGEST, sfHash);
- if (Configuration.DEBUG)
- {
- log.fine("Name: " + name); //$NON-NLS-1$
- log.fine(Main.DIGEST + ": " + sfHash); //$NON-NLS-1$
- log.fine(""); //$NON-NLS-1$
- }
- }
-
- /**
- * @param sectionsOnly whether to compute, in addition to the files, the hash
- * of the mainfest itself (false) or not (true).
- */
- void finishSigning(boolean sectionsOnly) throws IOException
- {
- if (state != STARTED)
- throw new IllegalStateException(Messages.getString("SFHelper.10")); //$NON-NLS-1$
-
- if (sectionsOnly)
- return;
-
- ByteArrayOutputStream baos = new ByteArrayOutputStream();
- manifest.write(baos);
- baos.flush();
- String manifestHash = util.hashByteArray(baos.toByteArray());
- if (Configuration.DEBUG)
- log.fine("Hashed Manifest " + manifestHash); //$NON-NLS-1$
- sfMainAttributes.putValue(Main.DIGEST_MANIFEST, manifestHash);
-
- this.state = FINISHED;
- }
-
- /**
- * Given an X.509 certificate this method returns the string representation of
- * the Issuer Distinguished Name.
- *
- * @param cert an X.509 certificate.
- * @return the string representation of the Issuer's DN.
- */
- private String getIssuerName(X509Certificate cert)
- {
- X500Principal xp = cert.getIssuerX500Principal();
- if (xp == null)
- {
- if (Configuration.DEBUG)
- log.fine("Certiticate, with serial number " + cert.getSerialNumber() //$NON-NLS-1$
- + ", has null Issuer. Return [unknown]"); //$NON-NLS-1$
- return Messages.getString("SFHelper.14"); //$NON-NLS-1$
- }
- String result = xp.getName();
- if (result == null)
- {
- if (Configuration.DEBUG)
- log.fine("Certiticate, with serial number " + cert.getSerialNumber() //$NON-NLS-1$
- + ", has an Issuer with null DN. Return [unnamed]"); //$NON-NLS-1$
- return Messages.getString("SFHelper.17"); //$NON-NLS-1$
- }
- return result;
- }
-
- /**
- * Given an X.509 certificate this method returns the string representation of
- * the Subject Distinguished Name.
- *
- * @param cert an X.509 certificate.
- * @return the string representation of the Subject's DN.
- */
- private String getSubjectName(X509Certificate cert)
- {
- X500Principal xp = cert.getSubjectX500Principal();
- if (xp == null)
- {
- if (Configuration.DEBUG)
- log.fine("Certiticate, with serial number " + cert.getSerialNumber() //$NON-NLS-1$
- + ", has null Subject. Return [unknown]"); //$NON-NLS-1$
- return Messages.getString("SFHelper.14"); //$NON-NLS-1$
- }
- String result = xp.getName();
- if (result == null)
- {
- if (Configuration.DEBUG)
- log.fine("Certiticate, with serial number " + cert.getSerialNumber() //$NON-NLS-1$
- + ", has a Subject with null DN. Return [unnamed]"); //$NON-NLS-1$
- return Messages.getString("SFHelper.17"); //$NON-NLS-1$
- }
- return result;
- }
-
- /**
- * Given an X.509 certificate this method returns the end validity date of
- * this certificate.
- *
- * @param cert an X.509 certificate.
- * @return the date when this certificate stops being valid.
- */
- private Date getNotAfterDate(X509Certificate cert)
- {
- Date result = cert.getNotAfter();
- if (result == null)
- {
- if (Configuration.DEBUG)
- log.fine("Certiticate, with serial number " + cert.getSerialNumber() //$NON-NLS-1$
- + ", has null start-validity date. Return epoch"); //$NON-NLS-1$
- return new Date(0);
- }
- return result;
- }
-
- /**
- * Given an X.509 certificate this method returns the start validity date of
- * this certificate.
- *
- * @param cert an X.509 certificate.
- * @return the date when this certificate starts being valid.
- */
- private Date getNotBeforeDate(X509Certificate cert)
- {
- Date result = cert.getNotBefore();
- if (result == null)
- {
- if (Configuration.DEBUG)
- log.fine("Certiticate, with serial number " + cert.getSerialNumber() //$NON-NLS-1$
- + ", has null end-validity date. Return epoch"); //$NON-NLS-1$
- return new Date(0);
- }
- return result;
- }
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/java2xhtml/Java2xhtml.java b/libjava/classpath/tools/gnu/classpath/tools/java2xhtml/Java2xhtml.java
deleted file mode 100644
index 90c6d4c..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/java2xhtml/Java2xhtml.java
+++ /dev/null
@@ -1,1354 +0,0 @@
-/* gnu.classpath.tools.java2xhtml.Java2xhtml
- 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., 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. */
-
-/** Java2xhtml.java Version 0.9
- * Produces an XHTML file from Java source code with syntax highlighting,
- * includes additional options (line numbering, tab spacing, etc.)
- *
- * NOTE: Common java naming structure is assumed
- * Capitalize the first letter that appears in a class or interface name
- * Use lowercase for the first letter in a method or variable name
- * Use only uppercase letters when naming constants
- *
- * @version 0.9, March 2003
- * @author Shayne Steele
- */
-package gnu.classpath.tools.java2xhtml;
-
-import java.io.*;
-import java.util.*;
-
-public class Java2xhtml
-{
- //--- define CSS classes for individual output elements
-
- private static final String sourceCodeStyle = "source";
- private static final String lineNumberStyle = "line-number even";
- private static final String modulusLineNumberStyle = "line-number odd";
-
- private static final String keywordStyle = "keyword";
- private static final String methodStyle = "method member";
- private static final String variableStyle = "variable member";
- private static final String singleLineCommentStyle = "line comment";
- private static final String traditionalCommentStyle = "c comment";
- private static final String javadocCommentStyle = "javadoc comment";
- private static final String javadocTagStyle = "javadoc tag";
- private static final String importNameStyle = "import header type";
- private static final String packageNameStyle = "package header type";
- private static final String primitiveTypeStyle = "primitive type";
- private static final String nonPrimitiveTypeStyle = "non-primitive type";
- private static final String constructorStyle = "constructor member";
- private static final String constantStyle = "constant member";
- private static final String doubleQuoteStyle = "double quote";
- private static final String singleQuoteStyle = "single quote";
- private static final String numericLiteralStyle = "numeric literal";
- private static final String primitiveLiteralStyle = "primitive literal";
-
- private static final String iconStyle = "icon";
-
-
-
- // parse the command line arguments
- // give a decent responce for bad input
- // call the HTMLifier on good input
- public static void main(String args[])
- {
- // parse the invokation arguments
- if (args.length < 1 || args.length > 3) // invoked program incorrectly
- {
- System.out.println("Java2xhtml Version 0.9 (C) 2005 Free Software Foundation");
- System.out.println(" Produces an XHTML file of Java source" +
- " code with syntax highlighting,");
- System.out.println(" includes additional options " +
- "(line numbering, tab spacing, etc.)");
- System.out.println(" This tool is part of GNU Classpath.");
- System.out.println(" GNU Classpath is free software; you can redistribute it and/or modify");
- System.out.println(" it under the terms of the GNU General Public License as published by");
- System.out.println(" the Free Software Foundation; either version 2, or (at your option)");
- System.out.println(" any later version.");
- System.out.println(" NOTE: Common java naming structure is " +
- "assumed");
- System.out.println("");
- System.out.println("USAGE:");
- System.out.println("java [java options] Java2xhtml " +
- "source.java [options file] " +
- "[output file]");
- System.out.println("");
- System.out.println(" - java is the name of the Java interpreter");
- System.out.println(" - [java options] are the optional options " +
- "of the Java interpreter");
- System.out.println(" - Java2xhtml is the name of this " +
- "application");
- System.out.println(" - source is a file or the directory to the " +
- "Java source file(s)");
- System.out.println(" - [options file] is the optional " +
- "path of a file with");
- System.out.println(" a structure like this:");
- System.out.println(" externalStyleSheetName=file_name" +
- " (default style.css)");
- System.out.println(" tabSize=integer (default value is 4)");
- System.out.println(" extraIndentation=integer " +
- "(default value is 0)");
- System.out.println(" lineModulus=integer (default value 5)");
- System.out.println(" isCodeSnippet=boolean" +
- " (default false)");
- System.out.println(" isXHTML_1_1=boolean" +
- " (default true)");
- System.out.println(" hasInternalStyleSheet=boolean" +
- " (default true)");
- System.out.println(" hasExternalStyleSheet=boolean" +
- " (default true)");
- System.out.println(" hasTitle=boolean" +
- " (default false)");
- System.out.println(" hasLegend=boolean" +
- " (default false)");
- System.out.println(" hasAllBoldSourceCode=boolean" +
- " (default false)");
- System.out.println(" hasLineNumbers=boolean" +
- " (default false)");
- System.out.println(" hasLineModulusDrawnLines=boolean" +
- " (default false)");
- System.out.println(" hasLineModulusCodeBlocks=boolean" +
- " (default false)");
- System.out.println(" hasFooter=boolean" +
- " (default false)");
- System.out.println(" hasFooterIcons=boolean" +
- " (default false)");
- System.out.println(" hasFooterDate=boolean" +
- " (default true)");
- System.out.println(" NOTE: filename must end with '.prop'");
- System.out.println(" Default [options file] is " +
- "options.prop");
- System.out.println(" - [output file] is name of the XHTML file " +
- "that is produced");
- System.out.println(" Default [output file] is source_java.html");
- System.out.println("");
- System.out.println("Output: source.java --> [output file]");
- System.out.println(" Default Output is ");
- System.out.println(" source.java --> source_java.html");
- System.out.println("");
- System.out.println("Examples of calling the program:");
- System.out.println(" process one file (say Java2xhtml.java):");
- System.out.println(" java Java2xhtml Java2xhtml.java");
- System.out.println(" process one directory (say C:\\HOME):");
- System.out.println(" java Java2xhtml C:\\HOME");
- System.out.println(" process one directory (say C:\\HOME with a " +
- "given options file (options.prop)):");
- System.out.println(" java Java2xhtml C:\\HOME options.prop");
- }
- else
- {
- // invoked program correctly, now get command line arguments
- // get the source file name
- String sourceName;
- sourceName = args[0];
- // make sure that the source file exist and if so HTMLify it
- File sourceFilePath = new File(sourceName);
- if (sourceFilePath.exists())
- {
- // good pathname so HTMLify it
- // get the default html options file name
- String propertiesFileName = "options.prop";
- // create a unique default html file name,
- // bubba.java -> bubba_java.html
- String htmlFileName = sourceName.replace('.', '_') + ".html";
- if (args.length == 2 || args.length == 3)
- {
- if (args[1].endsWith(".prop"))
- {
- // get the user supplied html options file name
- propertiesFileName = args[1];
- }
- else
- {
- // get the user supplied html outputfile name
- htmlFileName = args[1];
- }
- }
- if (args.length == 3)
- {
- if (args[2].endsWith(".prop"))
- {
- // get the user supplied html options file name
- propertiesFileName = args[2];
- }
- else
- {
- // get the user supplied html outputfile name
- htmlFileName = args[2];
- }
- }
- new Java2xhtml(propertiesFileName, sourceFilePath,
- htmlFileName);
- }
- else // source file does not exist, print message and exit normally
- {
- System.out.println("The source parameter must be an existent" +
- " file or directory");
- System.out.println("Run Java2xHtml without parameters for " +
- "help");
- }
- }
- }
-
- // collect various sets of keywords
- static Collection keywordCollection;
- static Collection primitiveTypeCollection;
- static Collection primitiveLiteralCollection;
- static Collection javadocTagCollection;
-
- // all these variables are changeable by a options file
- int extraIndentation = 0;
- int tabSize = 4;
- int lineModulus = 5;
- boolean hasLegend = false;
- boolean hasLineNumbers = false;
- boolean hasLineModulusDrawnLines = false;
- boolean hasLineModulusCodeBlocks = false;
- boolean hasFooter = false;
- boolean hasFooterIcons = false;
- boolean hasFooterDate = true;
- boolean isCodeSnippet = false;
- boolean isXHTML_1_1 = true;
- boolean hasTitle = false;
- boolean hasAllBoldSourceCode = false;
- boolean hasInternalStyleSheet = true;
- boolean hasExternalStyleSheet = true;
- String externalStyleSheetName = "style.css";
-
- static
- {
- // collection type is Hashset for unique elements and fast retieval
- String keywordArray[] =
- {
- "abstract", "default", "if", "private",
- "do", "implements", "protected", "throws",
- "break", "import", "public", "transient",
- "else", "instanceof", "return", "try",
- "case", "extends", "throw", "static",
- "catch", "final", "interface", "while",
- "volatile", "finally", "super", "synchronized",
- "class", "native", "switch", "package",
- "const", "for", "new", "goto",
- "continue", "this", "assert", "strictfp"
- };
- keywordCollection = new HashSet(Arrays.asList(keywordArray));
- String primitiveTypeArray[] =
- {
- "boolean", "char", "byte", "short", "int",
- "long", "float", "double", "void"
- };
- primitiveTypeCollection =
- new HashSet(Arrays.asList(primitiveTypeArray));
- String primitiveLiteralArray[]=
- {
- "false", "null", "true"
- };
- primitiveLiteralCollection =
- new HashSet(Arrays.asList(primitiveLiteralArray));
- String javadocTagArray[]=
- {
- "see", "author", "version", "param", "return", "exception",
- "deprecated", "throws", "link", "since", "serial",
- "serialField","serialData", "beaninfo"
- };
- javadocTagCollection = new HashSet(Arrays.asList(javadocTagArray));
- }
-
- public Java2xhtml()
- {
- }
-
- // create the various keyword collections
- // parse the html options file
- Java2xhtml(String propertiesFileName, File sourceFilePath,
- String htmlFileName)
- {
- // get html properties (use defaults if necessary)
- File propertiesFilePath = new File (propertiesFileName);
- if (propertiesFilePath.exists())
- {
- // html properies file exist try parsing it
- try
- {
- InputStream propertiesFile =
- new FileInputStream(propertiesFileName);
- Properties htmlProperties = new Properties();
- htmlProperties.load(propertiesFile);
- propertiesFile.close();
- setProperties(htmlProperties);
- }
- catch (IOException exception)
- {
- System.out.println(exception);
- }
- }
- if (sourceFilePath.isFile())
- {
- // process the file
- processFile(sourceFilePath, htmlFileName);
- }
- else if (sourceFilePath.isDirectory())
- {
- // process a directory
- File [] sourceFilePathArray = sourceFilePath.listFiles();
- for (int i = 0; i < sourceFilePathArray.length; i++)
- {
- if (((sourceFilePathArray[i]).getName()).endsWith(".java"))
- {
- // process each file that ends in .java
- // create a unique default html file name,
- // bubba.java -> bubba_java.html
- htmlFileName = ((sourceFilePathArray[i]).getName()).replace(
- '.', '_') + ".html";
- processFile(sourceFilePathArray[i], htmlFileName);
- }
- }
- }
- }
-
- public void setProperties(Properties htmlProperties)
- {
- hasLegend
- = Boolean.valueOf(htmlProperties.getProperty("hasLegend",
- "false")).booleanValue();
- extraIndentation
- = Integer.parseInt(htmlProperties.getProperty("extraIndentation", "0"));
- tabSize
- = Integer.parseInt(htmlProperties.getProperty("tabSize", "4"));
- hasLineNumbers
- = Boolean.valueOf(htmlProperties.getProperty("hasLineNumbers",
- "false")).booleanValue();
- lineModulus
- = Integer.parseInt(htmlProperties.getProperty("lineModulus", "5"));
- hasLineModulusDrawnLines
- = Boolean.valueOf(htmlProperties.getProperty("hasLineModulusDrawnLines",
- "false")).booleanValue();
- hasLineModulusCodeBlocks
- = Boolean.valueOf(htmlProperties.getProperty("hasLineModulusCodeBlocks",
- "false")).booleanValue();
- hasFooter
- = Boolean.valueOf(htmlProperties.getProperty("hasFooter",
- "false")).booleanValue();
- hasFooterIcons
- = Boolean.valueOf(htmlProperties.getProperty("hasFooterIcons",
- "false")).booleanValue();
- hasFooterDate
- = Boolean.valueOf(htmlProperties.getProperty("hasFooterDate",
- "true")).booleanValue();
- isXHTML_1_1
- = Boolean.valueOf(htmlProperties.getProperty("isXHTML_1_1",
- "true")).booleanValue();
- isCodeSnippet
- = Boolean.valueOf(htmlProperties.getProperty("isCodeSnippet",
- "false")).booleanValue();
- hasTitle
- = Boolean.valueOf(htmlProperties.getProperty("hasTitle",
- "false")).booleanValue();
- hasAllBoldSourceCode
- = Boolean.valueOf(htmlProperties.getProperty("hasAllBoldSourceCode",
- "false")).booleanValue();
- hasInternalStyleSheet
- = Boolean.valueOf(htmlProperties.getProperty("hasInternalStyleSheet",
- "true")).booleanValue();
- hasExternalStyleSheet
- = Boolean.valueOf(htmlProperties.getProperty("hasExternalStyleSheet",
- "true")).booleanValue();
- externalStyleSheetName
- = htmlProperties.getProperty("externalStyleSheetName", "style.css");
- }
-
-
- // read the file and put it into a stringbuffer
- void processFile(File sourceFilePath, String htmlFileName)
- {
- // open the file, copy it to a Stringbuffer , process into an
- // HTMLified String and convert result into an HTML file
- try
- {
- BufferedReader sourceReader =
- new BufferedReader(new FileReader(sourceFilePath));
- StringBuffer bufferIn = new StringBuffer();
- int readInInt = 0;
- char presentChar = 0;
- // copy file into a Stringbuffer
- while (readInInt != -1) // -1 value means end of stream/file
- {
- // put the file into a Stringbuffer
- readInInt= sourceReader.read();
- presentChar = ((readInInt >= 0) ? (char) readInInt : 0);
- bufferIn.append(presentChar);
- }
- sourceReader.close();
- BufferedWriter tempBufferedWriter =
- new BufferedWriter(new FileWriter(htmlFileName));
- tempBufferedWriter.write(makeHTML(bufferIn,
- sourceFilePath.getName()));
- tempBufferedWriter.close();
- System.out.println(sourceFilePath.getName() + " --> " +
- htmlFileName);
- }
- catch (IOException exception)
- {
- System.out.println(exception);
- }
- }
-
- // constant 'States' java source code can be in
- public final static class State
- {
- public final static State TEXT = new State();
- public final static State IMPORT_NAME = new State();
- public final static State PARAM_VARIABLE = new State();
- public final static State JAVADOC = new State();
- public final static State PACKAGE_NAME = new State();
- public final static State DOUBLE_QUOTE = new State();
- public final static State SINGLE_QUOTE = new State();
- public final static State TRADITIONAL_COMMENT = new State();
- public final static State LINE_COMMENT = new State();
-
- // empty constructor
- private State()
- {
- // empty body
- }
- }
-
- // Convert java source code StringBufffer into colorized (and tab spaced)
- // HTML String .
- // Assumes that Java naming convention is used
- // Uses a very basic state machine design.
- public String makeHTML(StringBuffer bufferIn, String sourceFileName)
- {
- int codeLineNumber = 0;
- boolean isNewLine = true;
- boolean isNewBlock = true;
- int identifierLength = 0;
- int qualifiedIdentifierLength = 0;
- int presentIndex = -1;
- int spaceLength = 0;
- int saveIndex = 0;
- char presentChar = 0;
- State presentState = State.TEXT;
- StringBuffer bufferOut = new StringBuffer(8192);
- if (!isCodeSnippet)
- {
- bufferOut.append("\r\n");
- if (isXHTML_1_1)
- {
- bufferOut.append("\r\n");
- bufferOut.append("\r\n");
- }
- else
- {
- bufferOut.append("\r\n");
- bufferOut.append("\r\n");
- }
- bufferOut.append("
\r\n");
- // end block early if no more source code
- if ((lineModulus > 0) && hasLineModulusCodeBlocks && !isNewBlock &&
- (codeLineNumber%lineModulus != 0))
- {
- bufferOut.append("
\r\n");
- }
- bufferOut.append(" \r\n"); // end div of sourceCodeStyle
- // if code snippet then don't add ending tags of xhtml page
- if (!isCodeSnippet)
- {
- // if footer mode then add a footer
- if (hasFooter)
- {
- bufferOut.append(" \r\n");
- bufferOut.append(" \r\n");
- }
- bufferOut.append(" \r\n");
- bufferOut.append("\r\n");
- }
- return bufferOut.toString();
- }
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/javah/ClassWrapper.java b/libjava/classpath/tools/gnu/classpath/tools/javah/ClassWrapper.java
deleted file mode 100644
index ffecac3..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/javah/ClassWrapper.java
+++ /dev/null
@@ -1,376 +0,0 @@
-/* ClassWrapper.java - wrap ASM class objects
- Copyright (C) 2006, 2007 Free Software Foundation, Inc.
-
- This file is part of GNU Classpath.
-
- GNU Classpath is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2, or (at your option)
- any later version.
-
- GNU Classpath is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with GNU Classpath; see the file COPYING. If not, write to the
- Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
- 02110-1301 USA.
-
- Linking this library statically or dynamically with other modules is
- making a combined work based on this library. Thus, the terms and
- conditions of the GNU General Public License cover the whole
- combination.
-
- As a special exception, the copyright holders of this library give you
- permission to link this library with independent modules to produce an
- executable, regardless of the license terms of these independent
- modules, and to copy and distribute the resulting executable under
- terms of your choice, provided that you also meet, for each linked
- independent module, the terms and conditions of the license of that
- module. An independent module is a module which is not derived from
- or based on this library. If you modify this library, you may extend
- this exception to your version of the library, but you are not
- obligated to do so. If you do not wish to do so, delete this
- exception statement from your version. */
-
-
-package 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.HashMap;
-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();
-
- // This maps a method name + descriptor, e.g. "method()V", to the
- // name chosen for the method. This is used when computing the
- // names of bridge method targets.
- HashMap methodNameMap = new HashMap();
-
- 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;
- }
-
- 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 = 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);
- methodNameMap = new HashMap(superClass.methodNameMap);
- }
- else
- {
- // Object.
- vtable = new ArrayList();
- bridgeTargets = new HashSet();
- methodNameMap = new HashMap();
- }
- addLocalMethods();
- addInterfaces(this);
-
- // Make a set of all the targets of bridge methods. We rename
- // bridge target methods to avoid problems with C++. You might
- // think we could rename the bridge methods themselves, but bridge
- // methods by definition override a method from the superclass --
- // and we have to consider the superclass' header as an
- // unchangeable entity.
- Iterator> i = methods.iterator();
- while (i.hasNext())
- {
- MethodNode m = (MethodNode) i.next();
- String desc = MethodHelper.getBridgeTarget(m);
- if (desc != null)
- {
- String sum = m.name + desc;
- boolean newTarget = bridgeTargets.add(sum);
- if (newTarget)
- {
- // Bridge target that is new in this class.
- String cname = this.name;
- int index = cname.lastIndexOf('/');
- cname = cname.substring(index + 1);
- methodNameMap.put(sum, cname + "$" + m.name);
- }
- }
- }
- }
-
- 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();
- String nameToUse;
- String sum = m.name + m.desc;
- if (bridgeTargets.contains(sum))
- nameToUse = (String) methodNameMap.get(sum);
- else
- nameToUse = m.name;
- methodNameMap.put(sum, nameToUse);
- MethodHelper.print(out, m, this, nameToUse);
- }
- }
-
- 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 = 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("::");
- out.printName(name);
- }
-
- // 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.printName(name);
- 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
deleted file mode 100644
index 8861541..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/javah/CniIncludePrinter.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/* CniIncludePrinter.java - generate CNI header files
- Copyright (C) 2006, 2007 Free Software Foundation, Inc.
-
- This file is part of GNU Classpath.
-
- GNU Classpath is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2, or (at your option)
- any later version.
-
- GNU Classpath is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with GNU Classpath; see the file COPYING. If not, write to the
- Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
- 02110-1301 USA.
-
- Linking this library statically or dynamically with other modules is
- making a combined work based on this library. Thus, the terms and
- conditions of the GNU General Public License cover the whole
- combination.
-
- As a special exception, the copyright holders of this library give you
- permission to link this library with independent modules to produce an
- executable, regardless of the license terms of these independent
- modules, and to copy and distribute the resulting executable under
- terms of your choice, provided that you also meet, for each linked
- independent module, the terms and conditions of the license of that
- module. An independent module is a module which is not derived from
- or based on this library. If you modify this library, you may extend
- this exception to your version of the library, but you are not
- obligated to do so. If you do not wish to do so, delete this
- exception statement from your version. */
-
-
-package 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(File file, 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(file + ".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
deleted file mode 100644
index df2b723..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/javah/CniPrintStream.java
+++ /dev/null
@@ -1,274 +0,0 @@
-/* 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;
- }
-
- // Print the C++ form of TYPE, mangling C++ keywords.
- 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("::");
- printName(getClassName(type));
- print(" *");
- }
- else
- {
- print(getName(type));
- }
- if (arrayCount > 0)
- {
- while (arrayCount-- > 0)
- {
- print(" > *");
- }
- }
- }
-
- // Print NAME, converting into C++ syntax and mangling C++ keywords
- // as we go.
- public final static void printName(PrintStream out, String name)
- {
- String[] parts = name.split("::|/");
- for (int i = 0; i < parts.length; i++)
- {
- if (i != 0)
- out.print("::");
- out.print(Keywords.getCxxName(parts[i]));
- }
- }
-
- // Println NAME, converting into C++ syntax and mangling C++
- // keywords as we go.
- public final static void printlnName(PrintStream out, String name)
- {
- printName(out, name);
- out.println();
- }
-
- // Print NAME, converting into C++ syntax and mangling C++ keywords
- // as we go.
- final void printName(String name)
- {
- printName(this, name);
- }
-
- 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 ");
- printlnName(out, 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 ");
- printName(out, className);
- out.println(";");
- }
-
- public void printNamespaces(PrintStream out)
- {
- if (sawArray)
- {
- out.println("#include ");
- out.println();
- }
-
- String[] classes = 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
deleted file mode 100644
index 9b5dc2c..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/javah/CniStubPrinter.java
+++ /dev/null
@@ -1,129 +0,0 @@
-/* CniStubPrinter.java - Generate a CNI stub file
- Copyright (C) 2006, 2007 Free Software Foundation, Inc.
-
- This file is part of GNU Classpath.
-
- GNU Classpath is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2, or (at your option)
- any later version.
-
- GNU Classpath is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with GNU Classpath; see the file COPYING. If not, write to the
- Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
- 02110-1301 USA.
-
- Linking this library statically or dynamically with other modules is
- making a combined work based on this library. Thus, the terms and
- conditions of the GNU General Public License cover the whole
- combination.
-
- As a special exception, the copyright holders of this library give you
- permission to link this library with independent modules to produce an
- executable, regardless of the license terms of these independent
- modules, and to copy and distribute the resulting executable under
- terms of your choice, provided that you also meet, for each linked
- independent module, the terms and conditions of the license of that
- module. An independent module is a module which is not derived from
- or based on this library. If you modify this library, you may extend
- this exception to your version of the library, but you are not
- obligated to do so. If you do not wish to do so, delete this
- exception statement from your version. */
-
-
-package 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.printName(className);
- out.print("::");
- out.printName(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(File filename, ClassWrapper klass) throws IOException
- {
- if (! klass.hasNativeMethod())
- return;
- String className = klass.name.replaceAll("/", "::");
- CniPrintStream out = (CniPrintStream) getPrintStream(filename + ".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
deleted file mode 100644
index 84b1fce..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/javah/FieldHelper.java
+++ /dev/null
@@ -1,99 +0,0 @@
-/* FieldHelper.java - field helper methods for CNI
- Copyright (C) 2006, 2007 Free Software Foundation, Inc.
-
- This file is part of GNU Classpath.
-
- GNU Classpath is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2, or (at your option)
- any later version.
-
- GNU Classpath is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with GNU Classpath; see the file COPYING. If not, write to the
- Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
- 02110-1301 USA.
-
- Linking this library statically or dynamically with other modules is
- making a combined work based on this library. Thus, the terms and
- conditions of the GNU General Public License cover the whole
- combination.
-
- As a special exception, the copyright holders of this library give you
- permission to link this library with independent modules to produce an
- executable, regardless of the license terms of these independent
- modules, and to copy and distribute the resulting executable under
- terms of your choice, provided that you also meet, for each linked
- independent module, the terms and conditions of the license of that
- module. An independent module is a module which is not derived from
- or based on this library. If you modify this library, you may extend
- this exception to your version of the library, but you are not
- obligated to do so. If you do not wish to do so, delete this
- exception statement from your version. */
-
-
-package 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 ((field.value instanceof Integer) || (field.value instanceof Long))
- out.print("const ");
- out.print(Type.getType(field.desc));
- out.print(" ");
- if (Modifier.isVolatile(field.access))
- out.print("volatile ");
- boolean result = false;
- if (superType != null && ! Modifier.isStatic(field.access))
- {
- out.print("__attribute__((aligned(__alignof__( ");
- superType.print(out);
- out.print(")))) ");
- result = true;
- }
- out.printName(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/GcjhMain.java b/libjava/classpath/tools/gnu/classpath/tools/javah/GcjhMain.java
deleted file mode 100644
index bf46648..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/javah/GcjhMain.java
+++ /dev/null
@@ -1,153 +0,0 @@
-/* GcjhMain.java - gcjh main program
- Copyright (C) 2007 Free Software Foundation, Inc.
-
- This file is part of GNU Classpath.
-
- GNU Classpath is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2, or (at your option)
- any later version.
-
- GNU Classpath is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with GNU Classpath; see the file COPYING. If not, write to the
- Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
- 02110-1301 USA.
-
- Linking this library statically or dynamically with other modules is
- making a combined work based on this library. Thus, the terms and
- conditions of the GNU General Public License cover the whole
- combination.
-
- As a special exception, the copyright holders of this library give you
- permission to link this library with independent modules to produce an
- executable, regardless of the license terms of these independent
- modules, and to copy and distribute the resulting executable under
- terms of your choice, provided that you also meet, for each linked
- independent module, the terms and conditions of the license of that
- module. An independent module is a module which is not derived from
- or based on this library. If you modify this library, you may extend
- this exception to your version of the library, but you are not
- obligated to do so. If you do not wish to do so, delete this
- exception statement from your version. */
-
-
-package 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.OptionGroup;
-
-import java.io.IOException;
-import java.util.ArrayList;
-
-public class GcjhMain extends Main
-{
- ArrayList commands = new ArrayList();
-
- public GcjhMain()
- {
- cni = true;
- }
-
- protected String getName()
- {
- return "gcjh";
- }
-
- protected ClasspathToolParser getParser()
- {
- ClasspathToolParser result = super.getParser();
-
- result.setHeader("usage: gcjh [OPTION]... CLASS...");
-
- OptionGroup text = new OptionGroup("CNI text options");
- text.add(new Option("add", "Insert TEXT into class body", "TEXT")
- {
- public void parsed(String arg) throws OptionException
- {
- commands.add(new Text(Text.ADD, arg));
- }
- });
- text.add(new Option("append", "Append TEXT after class declaration",
- "TEXT")
- {
- public void parsed(String arg) throws OptionException
- {
- commands.add(new Text(Text.APPEND, arg));
- }
- });
- text.add(new Option("friend", "Insert TEXT as a 'friend' declaration",
- "TEXT")
- {
- public void parsed(String arg) throws OptionException
- {
- commands.add(new Text(Text.FRIEND, arg));
- }
- });
- text.add(new Option("prepend", "Insert TEXT before start of class", "TEXT")
- {
- public void parsed(String arg) throws OptionException
- {
- commands.add(new Text(Text.PREPEND, arg));
- }
- });
- result.add(text);
-
- OptionGroup compat = new OptionGroup("Compatibility options (unused)");
- // gcjh itself had compatibility options -old and -trace. I
- // didn't add them here since they should really be unused by now.
- compat.add(new Option("td", "Unused compatibility option", "DIRECTORY")
- {
- public void parsed(String arg) throws OptionException
- {
- }
- });
- // I don't believe anyone ever used these options.
- compat.add(new Option("M", "Unused compatibility option")
- {
- public void parsed(String arg) throws OptionException
- {
- }
- });
- compat.add(new Option("MM", "Unused compatibility option")
- {
- public void parsed(String arg) throws OptionException
- {
- }
- });
- compat.add(new Option("MD", "Unused compatibility option")
- {
- public void parsed(String arg) throws OptionException
- {
- }
- });
- compat.add(new Option("MMD", "Unused compatibility option")
- {
- public void parsed(String arg) throws OptionException
- {
- }
- });
-
- result.add(compat);
-
- return result;
- }
-
- protected void postParse(String[] names)
- {
- for (int i = 0; i < names.length; ++i)
- textMap.put(names[i].replace('.', '/'), commands);
- }
-
- public static void main(String[] args) throws IOException
- {
- new GcjhMain().run(args);
- }
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/javah/JniHelper.java b/libjava/classpath/tools/gnu/classpath/tools/javah/JniHelper.java
deleted file mode 100644
index 9a723ca..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/javah/JniHelper.java
+++ /dev/null
@@ -1,122 +0,0 @@
-/* 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)
- {
- StringBuilder result = new StringBuilder();
- 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 == '$')
- 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
deleted file mode 100644
index cf5fed3..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/javah/JniIncludePrinter.java
+++ /dev/null
@@ -1,170 +0,0 @@
-/* JniIncludePrinter.java - Generate a JNI header file
- Copyright (C) 2006, 2007, 2011 Free Software Foundation, Inc.
-
- This file is part of GNU Classpath.
-
- GNU Classpath is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2, or (at your option)
- any later version.
-
- GNU Classpath is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with GNU Classpath; see the file COPYING. If not, write to the
- Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
- 02110-1301 USA.
-
- Linking this library statically or dynamically with other modules is
- making a combined work based on this library. Thus, the terms and
- conditions of the GNU General Public License cover the whole
- combination.
-
- As a special exception, the copyright holders of this library give you
- permission to link this library with independent modules to produce an
- executable, regardless of the license terms of these independent
- modules, and to copy and distribute the resulting executable under
- terms of your choice, provided that you also meet, for each linked
- independent module, the terms and conditions of the license of that
- module. An independent module is a module which is not derived from
- or based on this library. If you modify this library, you may extend
- this exception to your version of the library, but 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)
- throws IOException
- {
- klass.linkSupers();
- boolean wroteAny = false;
- ClassWrapper headerClass = klass;
- 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(headerClass.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(File file, ClassWrapper klass) throws IOException
- {
- // Note that we ignore the filename here.
- String xname = JniHelper.mangle(klass.name);
-
- // mangle the filename a bit
- String filename = klass.name;
-
- filename = filename.replace('/', '_');
- filename = filename.replace('$', '_');
- filename = filename + ".h";
-
- JniPrintStream out = (JniPrintStream) getPrintStream(filename, 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
deleted file mode 100644
index 96f9e7d..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/javah/JniPrintStream.java
+++ /dev/null
@@ -1,115 +0,0 @@
-/* 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 = methodNameMap.get(method.name);
- methodNameMap.put(method.name, Integer.valueOf(val.intValue() + 1));
- }
- else
- methodNameMap.put(method.name, Integer.valueOf(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
deleted file mode 100644
index 4a1803a..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/javah/JniStubPrinter.java
+++ /dev/null
@@ -1,109 +0,0 @@
-/* JniStubPrinter.java - Generate JNI stub files
- Copyright (C) 2006, 2007 Free Software Foundation, Inc.
-
- This file is part of GNU Classpath.
-
- GNU Classpath is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2, or (at your option)
- any later version.
-
- GNU Classpath is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with GNU Classpath; see the file COPYING. If not, write to the
- Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
- 02110-1301 USA.
-
- Linking this library statically or dynamically with other modules is
- making a combined work based on this library. Thus, the terms and
- conditions of the GNU General Public License cover the whole
- combination.
-
- As a special exception, the copyright holders of this library give you
- permission to link this library with independent modules to produce an
- executable, regardless of the license terms of these independent
- modules, and to copy and distribute the resulting executable under
- terms of your choice, provided that you also meet, for each linked
- independent module, the terms and conditions of the license of that
- module. An independent module is a module which is not derived from
- or based on this library. If you modify this library, you may extend
- this exception to your version of the library, but you are not
- obligated to do so. If you do not wish to do so, delete this
- exception statement from your version. */
-
-
-package 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(File filename, ClassWrapper klass) throws IOException
- {
- // Note that we ignore the filename here.
- if (! klass.hasNativeMethod())
- return;
- String xname = JniHelper.mangle(klass.name);
- JniPrintStream out
- = (JniPrintStream) getPrintStream(klass.name.replace('/', '_') + ".c",
- klass);
- if (out == null)
- return;
- out.println();
- out.print("#include <");
- out.print(klass.name.replace('/', '_'));
- 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
deleted file mode 100644
index 9c76a36..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/javah/Keywords.java
+++ /dev/null
@@ -1,172 +0,0 @@
-/* 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
-{
-/* A sorted list of all C++ keywords. This is identical to the list
- in gcc/java/mangle.c. */
- private static final String[] words =
- {
- "_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"
- };
-
- 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
deleted file mode 100644
index 2bea36c..0000000
--- a/libjava/classpath/tools/gnu/classpath/tools/javah/Main.java
+++ /dev/null
@@ -1,494 +0,0 @@
-/* Main.java - javah main program
- Copyright (C) 2006, 2007 Free Software Foundation, Inc.
-
- This file is part of GNU Classpath.
-
- GNU Classpath is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2, or (at your option)
- any later version.
-
- GNU Classpath is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with GNU Classpath; see the file COPYING. If not, write to the
- Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
- 02110-1301 USA.
-
- Linking this library statically or dynamically with other modules is
- making a combined work based on this library. Thus, the terms and
- conditions of the GNU General Public License cover the whole
- combination.
-
- As a special exception, the copyright holders of this library give you
- permission to link this library with independent modules to produce an
- executable, regardless of the license terms of these independent
- modules, and to copy and distribute the resulting executable under
- terms of your choice, provided that you also meet, for each linked
- independent module, the terms and conditions of the license of that
- module. An independent module is a module which is not derived from
- or based on this library. If you modify this library, you may extend
- this exception to your version of the library, but you are not
- obligated to do so. If you do not wish to do so, delete this
- exception statement from your version. */
-
-
-package 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 java.util.Set;
-import java.util.Map;
-
-import org.objectweb.asm.ClassReader;
-import org.objectweb.asm.tree.InnerClassNode;
-
-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 we've seen -cni or -jni.
- boolean cniOrJniSeen;
-
- // 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>();
-
- // Set of classes which have been parsed
- Set parsed = new HashSet();
-
- 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