
2010-06-03 Andrew John Hughes <ahughes@redhat.com> * examples/gnu/classpath/examples/CORBA/NamingService/Demo.java, * examples/gnu/classpath/examples/CORBA/SimpleCommunication/Demo.java, * examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/StructureToPass.java, * examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/StructureToReturn.java, * examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/TreeNode.java, * examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/WeThrowThisException.java, * examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/WeThrowThisExceptionHelper.java, * examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/_DemoTesterImplBase.java, * examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/_DemoTesterStub.java, * examples/gnu/classpath/examples/CORBA/swing/x5/CanvasWorld.java, * examples/gnu/classpath/examples/CORBA/swing/x5/ChatConstants.java, * examples/gnu/classpath/examples/CORBA/swing/x5/ClientFrame.java, * examples/gnu/classpath/examples/CORBA/swing/x5/Demo.java, * examples/gnu/classpath/examples/CORBA/swing/x5/GameManager.java, * examples/gnu/classpath/examples/CORBA/swing/x5/GameManagerImpl.java, * examples/gnu/classpath/examples/CORBA/swing/x5/IorReader.java, * examples/gnu/classpath/examples/CORBA/swing/x5/OrbStarter.java, * examples/gnu/classpath/examples/CORBA/swing/x5/Player.java, * examples/gnu/classpath/examples/CORBA/swing/x5/PlayerImpl.java, * examples/gnu/classpath/examples/CORBA/swing/x5/PlayingDesk.java, * examples/gnu/classpath/examples/CORBA/swing/x5/State.java, * examples/gnu/classpath/examples/CORBA/swing/x5/X5Server.java, * examples/gnu/classpath/examples/CORBA/swing/x5/_GameManagerImpl_Tie.java, * examples/gnu/classpath/examples/CORBA/swing/x5/_GameManager_Stub.java, * examples/gnu/classpath/examples/CORBA/swing/x5/_PlayerImpl_Tie.java, * examples/gnu/classpath/examples/CORBA/swing/x5/_Player_Stub.java, * examples/gnu/classpath/examples/awt/AicasGraphicsBenchmark.java, * examples/gnu/classpath/examples/awt/Demo.java, * examples/gnu/classpath/examples/awt/HintingDemo.java, * examples/gnu/classpath/examples/datatransfer/Demo.java, * examples/gnu/classpath/examples/html/Demo.java, * examples/gnu/classpath/examples/java2d/J2dBenchmark.java, * examples/gnu/classpath/examples/java2d/J2dBenchmarkGUI.java, * examples/gnu/classpath/examples/java2d/JNIOverhead.java, * examples/gnu/classpath/examples/jawt/DemoJAWT.java, * examples/gnu/classpath/examples/management/TestClassLoading.java, * examples/gnu/classpath/examples/management/TestCompilation.java, * examples/gnu/classpath/examples/management/TestGarbageCollector.java, * examples/gnu/classpath/examples/management/TestMemory.java, * examples/gnu/classpath/examples/management/TestMemoryManager.java, * examples/gnu/classpath/examples/management/TestMemoryPool.java, * examples/gnu/classpath/examples/management/TestThread.java, * examples/gnu/classpath/examples/midi/Demo.java, * examples/gnu/classpath/examples/print/Demo.java, * examples/gnu/classpath/examples/sound/AudioPlayerSample.java, * examples/gnu/classpath/examples/swing/BrowserEditorKit.java, * examples/gnu/classpath/examples/swing/ButtonDemo.java, * examples/gnu/classpath/examples/swing/ComboBoxDemo.java, * examples/gnu/classpath/examples/swing/Demo.java, * examples/gnu/classpath/examples/swing/DemoFactory.java, * examples/gnu/classpath/examples/swing/DocumentFilterDemo.java, * examples/gnu/classpath/examples/swing/FileChooserDemo.java, * examples/gnu/classpath/examples/swing/HtmlDemo.java, * examples/gnu/classpath/examples/swing/ListDemo.java, * examples/gnu/classpath/examples/swing/MetalThemeEditor.java, * examples/gnu/classpath/examples/swing/NavigationFilterDemo.java, * examples/gnu/classpath/examples/swing/ScrollBarDemo.java, * examples/gnu/classpath/examples/swing/SliderDemo.java, * examples/gnu/classpath/examples/swing/SpinnerDemo.java, * examples/gnu/classpath/examples/swing/TabbedPaneDemo.java, * examples/gnu/classpath/examples/swing/TableDemo.java, * examples/gnu/classpath/examples/swing/TextAreaDemo.java, * examples/gnu/classpath/examples/swing/TextFieldDemo.java, * examples/gnu/classpath/examples/swing/TreeDemo.java, * external/jsr166/java/util/ArrayDeque.java, * external/jsr166/java/util/concurrent/ArrayBlockingQueue.java, * external/jsr166/java/util/concurrent/ConcurrentHashMap.java, * external/jsr166/java/util/concurrent/ConcurrentSkipListMap.java, * external/jsr166/java/util/concurrent/ConcurrentSkipListSet.java, * external/jsr166/java/util/concurrent/CopyOnWriteArraySet.java, * external/jsr166/java/util/concurrent/CyclicBarrier.java, * external/jsr166/java/util/concurrent/DelayQueue.java, * external/jsr166/java/util/concurrent/Executors.java, * external/jsr166/java/util/concurrent/FutureTask.java, * external/jsr166/java/util/concurrent/LinkedBlockingDeque.java, * external/jsr166/java/util/concurrent/LinkedBlockingQueue.java, * external/jsr166/java/util/concurrent/PriorityBlockingQueue.java, * external/jsr166/java/util/concurrent/ScheduledExecutorService.java, * external/jsr166/java/util/concurrent/ScheduledThreadPoolExecutor.java, * external/jsr166/java/util/concurrent/Semaphore.java, * external/jsr166/java/util/concurrent/SynchronousQueue.java, * external/jsr166/java/util/concurrent/ThreadPoolExecutor.java, * external/jsr166/java/util/concurrent/atomic/AtomicInteger.java, * external/jsr166/java/util/concurrent/atomic/AtomicIntegerFieldUpdater.java, * external/jsr166/java/util/concurrent/atomic/AtomicLong.java, * external/jsr166/java/util/concurrent/atomic/AtomicLongFieldUpdater.java, * external/jsr166/java/util/concurrent/atomic/AtomicReferenceFieldUpdater.java, * external/jsr166/java/util/concurrent/locks/AbstractQueuedLongSynchronizer.java, * external/jsr166/java/util/concurrent/locks/AbstractQueuedSynchronizer.java, * external/jsr166/java/util/concurrent/locks/ReentrantReadWriteLock.java, * external/relaxngDatatype/org/relaxng/datatype/Datatype.java, * external/relaxngDatatype/org/relaxng/datatype/DatatypeBuilder.java, * external/relaxngDatatype/org/relaxng/datatype/DatatypeException.java, * external/relaxngDatatype/org/relaxng/datatype/DatatypeLibrary.java, * external/relaxngDatatype/org/relaxng/datatype/DatatypeLibraryFactory.java, * external/relaxngDatatype/org/relaxng/datatype/DatatypeStreamingValidator.java, * external/relaxngDatatype/org/relaxng/datatype/ValidationContext.java, * external/relaxngDatatype/org/relaxng/datatype/helpers/DatatypeLibraryLoader.java, * external/relaxngDatatype/org/relaxng/datatype/helpers/ParameterlessDatatypeBuilder.java, * external/relaxngDatatype/org/relaxng/datatype/helpers/StreamingValidatorImpl.java, * external/sax/org/xml/sax/AttributeList.java, * external/sax/org/xml/sax/Attributes.java, * external/sax/org/xml/sax/ContentHandler.java, * external/sax/org/xml/sax/DTDHandler.java, * external/sax/org/xml/sax/DocumentHandler.java, * external/sax/org/xml/sax/EntityResolver.java, * external/sax/org/xml/sax/ErrorHandler.java, * external/sax/org/xml/sax/HandlerBase.java, * external/sax/org/xml/sax/InputSource.java, * external/sax/org/xml/sax/Locator.java, * external/sax/org/xml/sax/Parser.java, * external/sax/org/xml/sax/SAXException.java, * external/sax/org/xml/sax/SAXNotRecognizedException.java, * external/sax/org/xml/sax/SAXNotSupportedException.java, * external/sax/org/xml/sax/SAXParseException.java, * external/sax/org/xml/sax/XMLReader.java, * external/sax/org/xml/sax/ext/Attributes2.java, * external/sax/org/xml/sax/ext/Attributes2Impl.java, * external/sax/org/xml/sax/ext/DeclHandler.java, * external/sax/org/xml/sax/ext/DefaultHandler2.java, * external/sax/org/xml/sax/ext/EntityResolver2.java, * external/sax/org/xml/sax/ext/LexicalHandler.java, * external/sax/org/xml/sax/ext/Locator2.java, * external/sax/org/xml/sax/ext/Locator2Impl.java, * external/sax/org/xml/sax/helpers/AttributeListImpl.java, * external/sax/org/xml/sax/helpers/AttributesImpl.java, * external/sax/org/xml/sax/helpers/DefaultHandler.java, * external/sax/org/xml/sax/helpers/LocatorImpl.java, * external/sax/org/xml/sax/helpers/NamespaceSupport.java, * external/sax/org/xml/sax/helpers/NewInstance.java, * external/sax/org/xml/sax/helpers/ParserAdapter.java, * external/sax/org/xml/sax/helpers/ParserFactory.java, * external/sax/org/xml/sax/helpers/XMLFilterImpl.java, * external/sax/org/xml/sax/helpers/XMLReaderAdapter.java, * external/sax/org/xml/sax/helpers/XMLReaderFactory.java, * external/w3c_dom/org/w3c/dom/Attr.java, * external/w3c_dom/org/w3c/dom/CDATASection.java, * external/w3c_dom/org/w3c/dom/CharacterData.java, * external/w3c_dom/org/w3c/dom/Comment.java, * external/w3c_dom/org/w3c/dom/DOMConfiguration.java, * external/w3c_dom/org/w3c/dom/DOMError.java, * external/w3c_dom/org/w3c/dom/DOMErrorHandler.java, * external/w3c_dom/org/w3c/dom/DOMException.java, * external/w3c_dom/org/w3c/dom/DOMImplementation.java, * external/w3c_dom/org/w3c/dom/DOMImplementationList.java, * external/w3c_dom/org/w3c/dom/DOMImplementationSource.java, * external/w3c_dom/org/w3c/dom/DOMLocator.java, * external/w3c_dom/org/w3c/dom/DOMStringList.java, * external/w3c_dom/org/w3c/dom/Document.java, * external/w3c_dom/org/w3c/dom/DocumentFragment.java, * external/w3c_dom/org/w3c/dom/DocumentType.java, * external/w3c_dom/org/w3c/dom/Element.java, * external/w3c_dom/org/w3c/dom/Entity.java, * external/w3c_dom/org/w3c/dom/EntityReference.java, * external/w3c_dom/org/w3c/dom/NameList.java, * external/w3c_dom/org/w3c/dom/NamedNodeMap.java, * external/w3c_dom/org/w3c/dom/Node.java, * external/w3c_dom/org/w3c/dom/NodeList.java, * external/w3c_dom/org/w3c/dom/Notation.java, * external/w3c_dom/org/w3c/dom/ProcessingInstruction.java, * external/w3c_dom/org/w3c/dom/Text.java, * external/w3c_dom/org/w3c/dom/TypeInfo.java, * external/w3c_dom/org/w3c/dom/UserDataHandler.java, * external/w3c_dom/org/w3c/dom/bootstrap/DOMImplementationRegistry.java, * external/w3c_dom/org/w3c/dom/css/CSS2Properties.java, * external/w3c_dom/org/w3c/dom/css/CSSCharsetRule.java, * external/w3c_dom/org/w3c/dom/css/CSSFontFaceRule.java, * external/w3c_dom/org/w3c/dom/css/CSSImportRule.java, * external/w3c_dom/org/w3c/dom/css/CSSMediaRule.java, * external/w3c_dom/org/w3c/dom/css/CSSPageRule.java, * external/w3c_dom/org/w3c/dom/css/CSSPrimitiveValue.java, * external/w3c_dom/org/w3c/dom/css/CSSRule.java, * external/w3c_dom/org/w3c/dom/css/CSSRuleList.java, * external/w3c_dom/org/w3c/dom/css/CSSStyleDeclaration.java, * external/w3c_dom/org/w3c/dom/css/CSSStyleRule.java, * external/w3c_dom/org/w3c/dom/css/CSSStyleSheet.java, * external/w3c_dom/org/w3c/dom/css/CSSUnknownRule.java, * external/w3c_dom/org/w3c/dom/css/CSSValue.java, * external/w3c_dom/org/w3c/dom/css/CSSValueList.java, * external/w3c_dom/org/w3c/dom/css/Counter.java, * external/w3c_dom/org/w3c/dom/css/DOMImplementationCSS.java, * external/w3c_dom/org/w3c/dom/css/DocumentCSS.java, * external/w3c_dom/org/w3c/dom/css/ElementCSSInlineStyle.java, * external/w3c_dom/org/w3c/dom/css/RGBColor.java, * external/w3c_dom/org/w3c/dom/css/Rect.java, * external/w3c_dom/org/w3c/dom/css/ViewCSS.java, * external/w3c_dom/org/w3c/dom/events/DocumentEvent.java, * external/w3c_dom/org/w3c/dom/events/Event.java, * external/w3c_dom/org/w3c/dom/events/EventException.java, * external/w3c_dom/org/w3c/dom/events/EventListener.java, * external/w3c_dom/org/w3c/dom/events/EventTarget.java, * external/w3c_dom/org/w3c/dom/events/MouseEvent.java, * external/w3c_dom/org/w3c/dom/events/MutationEvent.java, * external/w3c_dom/org/w3c/dom/events/UIEvent.java, * external/w3c_dom/org/w3c/dom/html2/HTMLAnchorElement.java, * external/w3c_dom/org/w3c/dom/html2/HTMLAppletElement.java, * external/w3c_dom/org/w3c/dom/html2/HTMLAreaElement.java, * external/w3c_dom/org/w3c/dom/html2/HTMLBRElement.java, * external/w3c_dom/org/w3c/dom/html2/HTMLBaseElement.java, * external/w3c_dom/org/w3c/dom/html2/HTMLBaseFontElement.java, * external/w3c_dom/org/w3c/dom/html2/HTMLBodyElement.java, * external/w3c_dom/org/w3c/dom/html2/HTMLButtonElement.java, * external/w3c_dom/org/w3c/dom/html2/HTMLCollection.java, * external/w3c_dom/org/w3c/dom/html2/HTMLDListElement.java, * external/w3c_dom/org/w3c/dom/html2/HTMLDirectoryElement.java, * external/w3c_dom/org/w3c/dom/html2/HTMLDivElement.java, * external/w3c_dom/org/w3c/dom/html2/HTMLDocument.java, * external/w3c_dom/org/w3c/dom/html2/HTMLElement.java, * external/w3c_dom/org/w3c/dom/html2/HTMLFieldSetElement.java, * external/w3c_dom/org/w3c/dom/html2/HTMLFontElement.java, * external/w3c_dom/org/w3c/dom/html2/HTMLFormElement.java, * external/w3c_dom/org/w3c/dom/html2/HTMLFrameElement.java, * external/w3c_dom/org/w3c/dom/html2/HTMLFrameSetElement.java, * external/w3c_dom/org/w3c/dom/html2/HTMLHRElement.java, * external/w3c_dom/org/w3c/dom/html2/HTMLHeadElement.java, * external/w3c_dom/org/w3c/dom/html2/HTMLHeadingElement.java, * external/w3c_dom/org/w3c/dom/html2/HTMLHtmlElement.java, * external/w3c_dom/org/w3c/dom/html2/HTMLIFrameElement.java, * external/w3c_dom/org/w3c/dom/html2/HTMLImageElement.java, * external/w3c_dom/org/w3c/dom/html2/HTMLInputElement.java, * external/w3c_dom/org/w3c/dom/html2/HTMLIsIndexElement.java, * external/w3c_dom/org/w3c/dom/html2/HTMLLIElement.java, * external/w3c_dom/org/w3c/dom/html2/HTMLLabelElement.java, * external/w3c_dom/org/w3c/dom/html2/HTMLLegendElement.java, * external/w3c_dom/org/w3c/dom/html2/HTMLLinkElement.java, * external/w3c_dom/org/w3c/dom/html2/HTMLMapElement.java, * external/w3c_dom/org/w3c/dom/html2/HTMLMenuElement.java, * external/w3c_dom/org/w3c/dom/html2/HTMLMetaElement.java, * external/w3c_dom/org/w3c/dom/html2/HTMLModElement.java, * external/w3c_dom/org/w3c/dom/html2/HTMLOListElement.java, * external/w3c_dom/org/w3c/dom/html2/HTMLObjectElement.java, * external/w3c_dom/org/w3c/dom/html2/HTMLOptGroupElement.java, * external/w3c_dom/org/w3c/dom/html2/HTMLOptionElement.java, * external/w3c_dom/org/w3c/dom/html2/HTMLOptionsCollection.java, * external/w3c_dom/org/w3c/dom/html2/HTMLParagraphElement.java, * external/w3c_dom/org/w3c/dom/html2/HTMLParamElement.java, * external/w3c_dom/org/w3c/dom/html2/HTMLPreElement.java, * external/w3c_dom/org/w3c/dom/html2/HTMLQuoteElement.java, * external/w3c_dom/org/w3c/dom/html2/HTMLScriptElement.java, * external/w3c_dom/org/w3c/dom/html2/HTMLSelectElement.java, * external/w3c_dom/org/w3c/dom/html2/HTMLStyleElement.java, * external/w3c_dom/org/w3c/dom/html2/HTMLTableCaptionElement.java, * external/w3c_dom/org/w3c/dom/html2/HTMLTableCellElement.java, * external/w3c_dom/org/w3c/dom/html2/HTMLTableColElement.java, * external/w3c_dom/org/w3c/dom/html2/HTMLTableElement.java, * external/w3c_dom/org/w3c/dom/html2/HTMLTableRowElement.java, * external/w3c_dom/org/w3c/dom/html2/HTMLTableSectionElement.java, * external/w3c_dom/org/w3c/dom/html2/HTMLTextAreaElement.java, * external/w3c_dom/org/w3c/dom/html2/HTMLTitleElement.java, * external/w3c_dom/org/w3c/dom/html2/HTMLUListElement.java, * external/w3c_dom/org/w3c/dom/ls/DOMImplementationLS.java, * external/w3c_dom/org/w3c/dom/ls/LSException.java, * external/w3c_dom/org/w3c/dom/ls/LSInput.java, * external/w3c_dom/org/w3c/dom/ls/LSLoadEvent.java, * external/w3c_dom/org/w3c/dom/ls/LSOutput.java, * external/w3c_dom/org/w3c/dom/ls/LSParser.java, * external/w3c_dom/org/w3c/dom/ls/LSParserFilter.java, * external/w3c_dom/org/w3c/dom/ls/LSProgressEvent.java, * external/w3c_dom/org/w3c/dom/ls/LSResourceResolver.java, * external/w3c_dom/org/w3c/dom/ls/LSSerializer.java, * external/w3c_dom/org/w3c/dom/ls/LSSerializerFilter.java, * external/w3c_dom/org/w3c/dom/ranges/DocumentRange.java, * external/w3c_dom/org/w3c/dom/ranges/Range.java, * external/w3c_dom/org/w3c/dom/ranges/RangeException.java, * external/w3c_dom/org/w3c/dom/stylesheets/DocumentStyle.java, * external/w3c_dom/org/w3c/dom/stylesheets/LinkStyle.java, * external/w3c_dom/org/w3c/dom/stylesheets/MediaList.java, * external/w3c_dom/org/w3c/dom/stylesheets/StyleSheet.java, * external/w3c_dom/org/w3c/dom/stylesheets/StyleSheetList.java, * external/w3c_dom/org/w3c/dom/traversal/DocumentTraversal.java, * external/w3c_dom/org/w3c/dom/traversal/NodeFilter.java, * external/w3c_dom/org/w3c/dom/traversal/NodeIterator.java, * external/w3c_dom/org/w3c/dom/traversal/TreeWalker.java, * external/w3c_dom/org/w3c/dom/views/AbstractView.java, * external/w3c_dom/org/w3c/dom/views/DocumentView.java, * external/w3c_dom/org/w3c/dom/xpath/XPathEvaluator.java, * external/w3c_dom/org/w3c/dom/xpath/XPathException.java, * external/w3c_dom/org/w3c/dom/xpath/XPathExpression.java, * external/w3c_dom/org/w3c/dom/xpath/XPathNSResolver.java, * external/w3c_dom/org/w3c/dom/xpath/XPathNamespace.java, * external/w3c_dom/org/w3c/dom/xpath/XPathResult.java, * gnu/CORBA/BigDecimalHelper.java, * gnu/CORBA/CDR/AbstractCdrInput.java, * gnu/CORBA/CDR/AbstractCdrOutput.java, * gnu/CORBA/CDR/AbstractDataInput.java, * gnu/CORBA/CDR/AbstractDataOutput.java, * gnu/CORBA/CDR/AligningInput.java, * gnu/CORBA/CDR/AligningOutput.java, * gnu/CORBA/CDR/ArrayValueHelper.java, * gnu/CORBA/CDR/BigEndianInputStream.java, * gnu/CORBA/CDR/BigEndianOutputStream.java, * gnu/CORBA/CDR/BufferedCdrOutput.java, * gnu/CORBA/CDR/BufferredCdrInput.java, * gnu/CORBA/CDR/HeadlessInput.java, * gnu/CORBA/CDR/IDLTypeHelper.java, * gnu/CORBA/CDR/LittleEndianOutputStream.java, * gnu/CORBA/CDR/UnknownExceptionCtxHandler.java, * gnu/CORBA/CDR/VMVio.java, * gnu/CORBA/CDR/Vio.java, * gnu/CORBA/CDR/gnuRuntime.java, * gnu/CORBA/CDR/gnuValueStream.java, * gnu/CORBA/CdrEncapsCodecImpl.java, * gnu/CORBA/CollocatedOrbs.java, * gnu/CORBA/Connected_objects.java, * gnu/CORBA/DefaultSocketFactory.java, * gnu/CORBA/DuplicateNameHolder.java, * gnu/CORBA/DynAn/AbstractAny.java, * gnu/CORBA/DynAn/DivideableAny.java, * gnu/CORBA/DynAn/NameValuePairHolder.java, * gnu/CORBA/DynAn/RecordAny.java, * gnu/CORBA/DynAn/ValueChangeListener.java, * gnu/CORBA/DynAn/gnuDynAny.java, * gnu/CORBA/DynAn/gnuDynAnyFactory.java, * gnu/CORBA/DynAn/gnuDynArray.java, * gnu/CORBA/DynAn/gnuDynEnum.java, * gnu/CORBA/DynAn/gnuDynFixed.java, * gnu/CORBA/DynAn/gnuDynSequence.java, * gnu/CORBA/DynAn/gnuDynUnion.java, * gnu/CORBA/DynAn/gnuDynValue.java, * gnu/CORBA/DynAn/gnuDynValueBox.java, * gnu/CORBA/DynAnySeqHolder.java, * gnu/CORBA/EmptyExceptionHolder.java, * gnu/CORBA/ForwardRequestHelper.java, * gnu/CORBA/GIOP/CharSets_OSF.java, * gnu/CORBA/GIOP/CloseMessage.java, * gnu/CORBA/GIOP/ErrorMessage.java, * gnu/CORBA/GIOP/MessageHeader.java, * gnu/CORBA/GIOP/ServiceContext.java, * gnu/CORBA/GIOP/v1_2/RequestHeader.java, * gnu/CORBA/GeneralHolder.java, * gnu/CORBA/IOR.java, * gnu/CORBA/Interceptor/ClientRequestInterceptors.java, * gnu/CORBA/Interceptor/ForwardRequestHolder.java, * gnu/CORBA/Interceptor/IORInterceptors.java, * gnu/CORBA/Interceptor/Registrator.java, * gnu/CORBA/Interceptor/ServerRequestInterceptors.java, * gnu/CORBA/Interceptor/gnuClientRequestInfo.java, * gnu/CORBA/Interceptor/gnuIcCurrent.java, * gnu/CORBA/Interceptor/gnuIorInfo.java, * gnu/CORBA/Interceptor/gnuServerRequestInfo.java, * gnu/CORBA/IorDelegate.java, * gnu/CORBA/IorObject.java, * gnu/CORBA/Minor.java, * gnu/CORBA/NameDynAnyPairHolder.java, * gnu/CORBA/NameDynAnyPairSeqHolder.java, * gnu/CORBA/NameValuePairHolder.java, * gnu/CORBA/NameValuePairSeqHolder.java, * gnu/CORBA/NamingService/NameParser.java, * gnu/CORBA/NamingService/NamingMap.java, * gnu/CORBA/NamingService/NamingServiceTransient.java, * gnu/CORBA/NamingService/TransientContext.java, * gnu/CORBA/ObjectCreator.java, * gnu/CORBA/OrbFocused.java, * gnu/CORBA/OrbFunctional.java, * gnu/CORBA/OrbRestricted.java, * gnu/CORBA/Poa/AOM.java, * gnu/CORBA/Poa/AccessiblePolicy.java, * gnu/CORBA/Poa/DynamicImpHandler.java, * gnu/CORBA/Poa/ForwardRequestHolder.java, * gnu/CORBA/Poa/ForwardedServant.java, * gnu/CORBA/Poa/InvalidPolicyHolder.java, * gnu/CORBA/Poa/LocalDelegate.java, * gnu/CORBA/Poa/LocalRequest.java, * gnu/CORBA/Poa/LocalServerRequest.java, * gnu/CORBA/Poa/ORB_1_4.java, * gnu/CORBA/Poa/ServantDelegateImpl.java, * gnu/CORBA/Poa/StandardPolicies.java, * gnu/CORBA/Poa/gnuAdapterActivator.java, * gnu/CORBA/Poa/gnuForwardRequest.java, * gnu/CORBA/Poa/gnuIdAssignmentPolicy.java, * gnu/CORBA/Poa/gnuIdUniquenessPolicy.java, * gnu/CORBA/Poa/gnuImplicitActivationPolicy.java, * gnu/CORBA/Poa/gnuLifespanPolicy.java, * gnu/CORBA/Poa/gnuPOA.java, * gnu/CORBA/Poa/gnuPOAManager.java, * gnu/CORBA/Poa/gnuPoaCurrent.java, * gnu/CORBA/Poa/gnuRequestProcessingPolicy.java, * gnu/CORBA/Poa/gnuServantObject.java, * gnu/CORBA/Poa/gnuServantRetentionPolicy.java, * gnu/CORBA/Poa/gnuThreadPolicy.java, * gnu/CORBA/ServiceRequestAdapter.java, * gnu/CORBA/SetOverrideTypeHolder.java, * gnu/CORBA/SimpleDelegate.java, * gnu/CORBA/SocketRepository.java, * gnu/CORBA/StreamHolder.java, * gnu/CORBA/TypeCodeHelper.java, * gnu/CORBA/TypeKindNamer.java, * gnu/CORBA/Version.java, * gnu/CORBA/_PolicyImplBase.java, * gnu/CORBA/gnuAny.java, * gnu/CORBA/gnuCodecFactory.java, * gnu/CORBA/gnuEnvironment.java, * gnu/CORBA/gnuRequest.java, * gnu/CORBA/gnuValueHolder.java, * gnu/CORBA/interfaces/SocketFactory.java, * gnu/CORBA/typecodes/AliasTypeCode.java, * gnu/CORBA/typecodes/ArrayTypeCode.java, * gnu/CORBA/typecodes/FixedTypeCode.java, * gnu/CORBA/typecodes/GeneralTypeCode.java, * gnu/CORBA/typecodes/PrimitiveTypeCode.java, * gnu/CORBA/typecodes/RecordTypeCode.java, * gnu/CORBA/typecodes/RecursiveTypeCode.java, * gnu/CORBA/typecodes/StringTypeCode.java, * gnu/classpath/Pair.java, * gnu/classpath/Pointer.java, * gnu/classpath/Pointer32.java, * gnu/classpath/Pointer64.java, * gnu/classpath/ServiceFactory.java, * gnu/classpath/ServiceProviderLoadingAction.java, * gnu/classpath/SystemProperties.java, * gnu/classpath/debug/Component.java, * gnu/classpath/debug/PreciseFilter.java, * gnu/classpath/debug/SystemLogger.java, * gnu/classpath/debug/TeeInputStream.java, * gnu/classpath/debug/TeeReader.java, * gnu/classpath/jdwp/Jdwp.java, * gnu/classpath/jdwp/JdwpConstants.java, * gnu/classpath/jdwp/event/BreakpointEvent.java, * gnu/classpath/jdwp/event/ClassPrepareEvent.java, * gnu/classpath/jdwp/event/ClassUnloadEvent.java, * gnu/classpath/jdwp/event/Event.java, * gnu/classpath/jdwp/event/EventManager.java, * gnu/classpath/jdwp/event/EventRequest.java, * gnu/classpath/jdwp/event/ExceptionEvent.java, * gnu/classpath/jdwp/event/MethodEntryEvent.java, * gnu/classpath/jdwp/event/MethodExitEvent.java, * gnu/classpath/jdwp/event/SingleStepEvent.java, * gnu/classpath/jdwp/event/ThreadEndEvent.java, * gnu/classpath/jdwp/event/VmDeathEvent.java, * gnu/classpath/jdwp/event/VmInitEvent.java, * gnu/classpath/jdwp/event/filters/ClassExcludeFilter.java, * gnu/classpath/jdwp/event/filters/ClassMatchFilter.java, * gnu/classpath/jdwp/event/filters/ClassOnlyFilter.java, * gnu/classpath/jdwp/event/filters/ExceptionOnlyFilter.java, * gnu/classpath/jdwp/event/filters/FieldOnlyFilter.java, * gnu/classpath/jdwp/event/filters/InstanceOnlyFilter.java, * gnu/classpath/jdwp/event/filters/StepFilter.java, * gnu/classpath/jdwp/event/filters/ThreadOnlyFilter.java, * gnu/classpath/jdwp/exception/InvalidClassException.java, * gnu/classpath/jdwp/exception/InvalidClassLoaderException.java, * gnu/classpath/jdwp/exception/InvalidEventTypeException.java, * gnu/classpath/jdwp/exception/InvalidFieldException.java, * gnu/classpath/jdwp/exception/InvalidFrameException.java, * gnu/classpath/jdwp/exception/InvalidLocationException.java, * gnu/classpath/jdwp/exception/InvalidMethodException.java, * gnu/classpath/jdwp/exception/InvalidObjectException.java, * gnu/classpath/jdwp/exception/InvalidSlotException.java, * gnu/classpath/jdwp/exception/InvalidStringException.java, * gnu/classpath/jdwp/exception/InvalidThreadException.java, * gnu/classpath/jdwp/exception/InvalidThreadGroupException.java, * gnu/classpath/jdwp/exception/NativeMethodException.java, * gnu/classpath/jdwp/exception/NotImplementedException.java, * gnu/classpath/jdwp/id/JdwpId.java, * gnu/classpath/jdwp/id/NullObjectId.java, * gnu/classpath/jdwp/processor/ArrayReferenceCommandSet.java, * gnu/classpath/jdwp/processor/ArrayTypeCommandSet.java, * gnu/classpath/jdwp/processor/ClassLoaderReferenceCommandSet.java, * gnu/classpath/jdwp/processor/ClassObjectReferenceCommandSet.java, * gnu/classpath/jdwp/processor/ClassTypeCommandSet.java, * gnu/classpath/jdwp/processor/CommandSet.java, * gnu/classpath/jdwp/processor/EventRequestCommandSet.java, * gnu/classpath/jdwp/processor/FieldCommandSet.java, * gnu/classpath/jdwp/processor/InterfaceTypeCommandSet.java, * gnu/classpath/jdwp/processor/MethodCommandSet.java, * gnu/classpath/jdwp/processor/ObjectReferenceCommandSet.java, * gnu/classpath/jdwp/processor/PacketProcessor.java, * gnu/classpath/jdwp/processor/ReferenceTypeCommandSet.java, * gnu/classpath/jdwp/processor/StackFrameCommandSet.java, * gnu/classpath/jdwp/processor/StringReferenceCommandSet.java, * gnu/classpath/jdwp/processor/ThreadGroupReferenceCommandSet.java, * gnu/classpath/jdwp/processor/ThreadReferenceCommandSet.java, * gnu/classpath/jdwp/processor/VirtualMachineCommandSet.java, * gnu/classpath/jdwp/transport/JdwpCommandPacket.java, * gnu/classpath/jdwp/transport/JdwpConnection.java, * gnu/classpath/jdwp/transport/JdwpPacket.java, * gnu/classpath/jdwp/transport/JdwpReplyPacket.java, * gnu/classpath/jdwp/transport/SocketTransport.java, * gnu/classpath/jdwp/transport/TransportFactory.java, * gnu/classpath/jdwp/util/JdwpString.java, * gnu/classpath/jdwp/util/LineTable.java, * gnu/classpath/jdwp/util/Location.java, * gnu/classpath/jdwp/util/MethodResult.java, * gnu/classpath/jdwp/util/MonitorInfo.java, * gnu/classpath/jdwp/util/Signature.java, * gnu/classpath/jdwp/util/VariableTable.java, * gnu/classpath/jdwp/value/ArrayValue.java, * gnu/classpath/jdwp/value/BooleanValue.java, * gnu/classpath/jdwp/value/ByteValue.java, * gnu/classpath/jdwp/value/CharValue.java, * gnu/classpath/jdwp/value/DoubleValue.java, * gnu/classpath/jdwp/value/FloatValue.java, * gnu/classpath/jdwp/value/IntValue.java, * gnu/classpath/jdwp/value/LongValue.java, * gnu/classpath/jdwp/value/ObjectValue.java, * gnu/classpath/jdwp/value/ShortValue.java, * gnu/classpath/jdwp/value/StringValue.java, * gnu/classpath/jdwp/value/Value.java, * gnu/classpath/jdwp/value/ValueFactory.java, * gnu/classpath/jdwp/value/VoidValue.java, * gnu/classpath/toolkit/DefaultDaemonThreadFactory.java, * gnu/java/awt/AWTUtilities.java, * gnu/java/awt/BitMaskExtent.java, * gnu/java/awt/BitwiseXORComposite.java, * gnu/java/awt/Buffers.java, * gnu/java/awt/ClasspathGraphicsEnvironment.java, * gnu/java/awt/ClasspathToolkit.java, * gnu/java/awt/ComponentDataBlitOp.java, * gnu/java/awt/EmbeddedWindow.java, * gnu/java/awt/GradientPaintContext.java, * gnu/java/awt/color/CieXyzConverter.java, * gnu/java/awt/color/ClutProfileConverter.java, * gnu/java/awt/color/ColorLookUpTable.java, * gnu/java/awt/color/GrayProfileConverter.java, * gnu/java/awt/color/GrayScaleConverter.java, * gnu/java/awt/color/LinearRGBConverter.java, * gnu/java/awt/color/ProfileHeader.java, * gnu/java/awt/color/RgbProfileConverter.java, * gnu/java/awt/color/SrgbConverter.java, * gnu/java/awt/color/ToneReproductionCurve.java, * gnu/java/awt/dnd/GtkMouseDragGestureRecognizer.java, * gnu/java/awt/dnd/peer/gtk/GtkDragSourceContextPeer.java, * gnu/java/awt/dnd/peer/gtk/GtkDropTargetContextPeer.java, * gnu/java/awt/dnd/peer/gtk/GtkDropTargetPeer.java, * gnu/java/awt/font/FontDelegate.java, * gnu/java/awt/font/FontFactory.java, * gnu/java/awt/font/GNUGlyphVector.java, * gnu/java/awt/font/OpenTypeFontPeer.java, * gnu/java/awt/font/autofit/GlyphHints.java, * gnu/java/awt/font/autofit/Latin.java, * gnu/java/awt/font/autofit/Utils.java, * gnu/java/awt/font/opentype/CharGlyphMap.java, * gnu/java/awt/font/opentype/GlyphNamer.java, * gnu/java/awt/font/opentype/MacResourceFork.java, * gnu/java/awt/font/opentype/NameDecoder.java, * gnu/java/awt/font/opentype/OpenTypeFont.java, * gnu/java/awt/font/opentype/OpenTypeFontFactory.java, * gnu/java/awt/font/opentype/truetype/GlyphLoader.java, * gnu/java/awt/font/opentype/truetype/GlyphLocator.java, * gnu/java/awt/font/opentype/truetype/GlyphMeasurer.java, * gnu/java/awt/font/opentype/truetype/Point.java, * gnu/java/awt/font/opentype/truetype/TrueTypeScaler.java, * gnu/java/awt/font/opentype/truetype/VirtualMachine.java, * gnu/java/awt/font/opentype/truetype/Zone.java, * gnu/java/awt/font/opentype/truetype/ZonePathIterator.java, * gnu/java/awt/image/AsyncImage.java, * gnu/java/awt/image/ImageConverter.java, * gnu/java/awt/image/ImageDecoder.java, * gnu/java/awt/image/XBMDecoder.java, * gnu/java/awt/java2d/AbstractGraphics2D.java, * gnu/java/awt/java2d/AlphaCompositeContext.java, * gnu/java/awt/java2d/CubicSegment.java, * gnu/java/awt/java2d/LineSegment.java, * gnu/java/awt/java2d/PixelCoverage.java, * gnu/java/awt/java2d/QuadSegment.java, * gnu/java/awt/java2d/RasterGraphics.java, * gnu/java/awt/java2d/ScanlineConverter.java, * gnu/java/awt/java2d/ScanlineCoverage.java, * gnu/java/awt/java2d/Segment.java, * gnu/java/awt/java2d/TexturePaintContext.java, * gnu/java/awt/peer/ClasspathDesktopPeer.java, * gnu/java/awt/peer/ClasspathFontPeer.java, * gnu/java/awt/peer/GLightweightPeer.java, * gnu/java/awt/peer/GnomeDesktopPeer.java, * gnu/java/awt/peer/KDEDesktopPeer.java, * gnu/java/awt/peer/gtk/AsyncImage.java, * gnu/java/awt/peer/gtk/BufferedImageGraphics.java, * gnu/java/awt/peer/gtk/CairoGraphics2D.java, * gnu/java/awt/peer/gtk/CairoSurface.java, * gnu/java/awt/peer/gtk/CairoSurfaceGraphics.java, * gnu/java/awt/peer/gtk/ComponentGraphics.java, * gnu/java/awt/peer/gtk/ComponentGraphicsCopy.java, * gnu/java/awt/peer/gtk/FreetypeGlyphVector.java, * gnu/java/awt/peer/gtk/GdkFontPeer.java, * gnu/java/awt/peer/gtk/GdkGraphicsConfiguration.java, * gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.java, * gnu/java/awt/peer/gtk/GdkPixbufDecoder.java, * gnu/java/awt/peer/gtk/GdkRobotPeer.java, * gnu/java/awt/peer/gtk/GdkScreenGraphicsDevice.java, * gnu/java/awt/peer/gtk/GtkButtonPeer.java, * gnu/java/awt/peer/gtk/GtkCheckboxPeer.java, * gnu/java/awt/peer/gtk/GtkChoicePeer.java, * gnu/java/awt/peer/gtk/GtkClipboard.java, * gnu/java/awt/peer/gtk/GtkComponentPeer.java, * gnu/java/awt/peer/gtk/GtkContainerPeer.java, * gnu/java/awt/peer/gtk/GtkCursor.java, * gnu/java/awt/peer/gtk/GtkDialogPeer.java, * gnu/java/awt/peer/gtk/GtkFileDialogPeer.java, * gnu/java/awt/peer/gtk/GtkFramePeer.java, * gnu/java/awt/peer/gtk/GtkGenericPeer.java, * gnu/java/awt/peer/gtk/GtkImage.java, * gnu/java/awt/peer/gtk/GtkImageConsumer.java, * gnu/java/awt/peer/gtk/GtkLabelPeer.java, * gnu/java/awt/peer/gtk/GtkListPeer.java, * gnu/java/awt/peer/gtk/GtkMenuComponentPeer.java, * gnu/java/awt/peer/gtk/GtkMenuPeer.java, * gnu/java/awt/peer/gtk/GtkMouseInfoPeer.java, * gnu/java/awt/peer/gtk/GtkPanelPeer.java, * gnu/java/awt/peer/gtk/GtkPopupMenuPeer.java, * gnu/java/awt/peer/gtk/GtkScrollbarPeer.java, * gnu/java/awt/peer/gtk/GtkSelection.java, * gnu/java/awt/peer/gtk/GtkToolkit.java, * gnu/java/awt/peer/gtk/GtkVolatileImage.java, * gnu/java/awt/peer/gtk/GtkWindowPeer.java, * gnu/java/awt/peer/gtk/VolatileImageGraphics.java, * gnu/java/awt/peer/headless/HeadlessGraphicsEnvironment.java, * gnu/java/awt/peer/qt/MainQtThread.java, * gnu/java/awt/peer/qt/QMatrix.java, * gnu/java/awt/peer/qt/QPainterPath.java, * gnu/java/awt/peer/qt/QPen.java, * gnu/java/awt/peer/qt/QtAudioClip.java, * gnu/java/awt/peer/qt/QtButtonPeer.java, * gnu/java/awt/peer/qt/QtCheckboxPeer.java, * gnu/java/awt/peer/qt/QtChoicePeer.java, * gnu/java/awt/peer/qt/QtComponentGraphics.java, * gnu/java/awt/peer/qt/QtComponentPeer.java, * gnu/java/awt/peer/qt/QtContainerPeer.java, * gnu/java/awt/peer/qt/QtDialogPeer.java, * gnu/java/awt/peer/qt/QtEmbeddedWindowPeer.java, * gnu/java/awt/peer/qt/QtFileDialogPeer.java, * gnu/java/awt/peer/qt/QtFontMetrics.java, * gnu/java/awt/peer/qt/QtFontPeer.java, * gnu/java/awt/peer/qt/QtFramePeer.java, * gnu/java/awt/peer/qt/QtGraphics.java, * gnu/java/awt/peer/qt/QtGraphicsEnvironment.java, * gnu/java/awt/peer/qt/QtImage.java, * gnu/java/awt/peer/qt/QtImageConsumer.java, * gnu/java/awt/peer/qt/QtImageDirectGraphics.java, * gnu/java/awt/peer/qt/QtImageGraphics.java, * gnu/java/awt/peer/qt/QtLabelPeer.java, * gnu/java/awt/peer/qt/QtListPeer.java, * gnu/java/awt/peer/qt/QtMenuBarPeer.java, * gnu/java/awt/peer/qt/QtMenuComponentPeer.java, * gnu/java/awt/peer/qt/QtMenuItemPeer.java, * gnu/java/awt/peer/qt/QtMenuPeer.java, * gnu/java/awt/peer/qt/QtPanelPeer.java, * gnu/java/awt/peer/qt/QtPopupMenuPeer.java, * gnu/java/awt/peer/qt/QtRepaintThread.java, * gnu/java/awt/peer/qt/QtScreenDevice.java, * gnu/java/awt/peer/qt/QtScreenDeviceConfiguration.java, * gnu/java/awt/peer/qt/QtScrollPanePeer.java, * gnu/java/awt/peer/qt/QtScrollbarPeer.java, * gnu/java/awt/peer/qt/QtTextAreaPeer.java, * gnu/java/awt/peer/qt/QtTextFieldPeer.java, * gnu/java/awt/peer/qt/QtToolkit.java, * gnu/java/awt/peer/qt/QtVolatileImage.java, * gnu/java/awt/peer/qt/QtWindowPeer.java, * gnu/java/awt/peer/swing/SwingButtonPeer.java, * gnu/java/awt/peer/swing/SwingCheckboxPeer.java, * gnu/java/awt/peer/swing/SwingComponent.java, * gnu/java/awt/peer/swing/SwingComponentPeer.java, * gnu/java/awt/peer/swing/SwingContainerPeer.java, * gnu/java/awt/peer/swing/SwingLabelPeer.java, * gnu/java/awt/peer/swing/SwingListPeer.java, * gnu/java/awt/peer/swing/SwingMenuItemPeer.java, * gnu/java/awt/peer/swing/SwingMenuPeer.java, * gnu/java/awt/peer/swing/SwingTextAreaPeer.java, * gnu/java/awt/peer/swing/SwingTextFieldPeer.java, * gnu/java/awt/peer/x/GLGraphics.java, * gnu/java/awt/peer/x/KeyboardMapping.java, * gnu/java/awt/peer/x/XEventPump.java, * gnu/java/awt/peer/x/XFontPeer.java, * gnu/java/awt/peer/x/XFramePeer.java, * gnu/java/awt/peer/x/XGraphics2D.java, * gnu/java/awt/peer/x/XGraphicsConfiguration.java, * gnu/java/awt/peer/x/XGraphicsDevice.java, * gnu/java/awt/peer/x/XGraphicsEnvironment.java, * gnu/java/awt/peer/x/XImage.java, * gnu/java/awt/peer/x/XToolkit.java, * gnu/java/awt/peer/x/XWindowPeer.java, * gnu/java/awt/print/JavaPrinterGraphics.java, * gnu/java/awt/print/JavaPrinterJob.java, * gnu/java/awt/print/PostScriptGraphics2D.java, * gnu/java/awt/print/SpooledDocument.java, * gnu/java/beans/BeanInfoEmbryo.java, * gnu/java/beans/DefaultExceptionListener.java, * gnu/java/beans/ExplicitBeanInfo.java, * gnu/java/beans/IntrospectionIncubator.java, * gnu/java/beans/decoder/AbstractContext.java, * gnu/java/beans/decoder/AbstractCreatableObjectContext.java, * gnu/java/beans/decoder/AbstractElementHandler.java, * gnu/java/beans/decoder/AbstractObjectContext.java, * gnu/java/beans/decoder/ArrayContext.java, * gnu/java/beans/decoder/ArrayHandler.java, * gnu/java/beans/decoder/AssemblyException.java, * gnu/java/beans/decoder/BooleanHandler.java, * gnu/java/beans/decoder/ByteHandler.java, * gnu/java/beans/decoder/CharHandler.java, * gnu/java/beans/decoder/ClassHandler.java, * gnu/java/beans/decoder/ConstructorContext.java, * gnu/java/beans/decoder/Context.java, * gnu/java/beans/decoder/DecoderContext.java, * gnu/java/beans/decoder/DoubleHandler.java, * gnu/java/beans/decoder/DummyContext.java, * gnu/java/beans/decoder/DummyHandler.java, * gnu/java/beans/decoder/ElementHandler.java, * gnu/java/beans/decoder/FloatHandler.java, * gnu/java/beans/decoder/GrowableArrayContext.java, * gnu/java/beans/decoder/IndexContext.java, * gnu/java/beans/decoder/IntHandler.java, * gnu/java/beans/decoder/JavaHandler.java, * gnu/java/beans/decoder/LongHandler.java, * gnu/java/beans/decoder/MethodContext.java, * gnu/java/beans/decoder/MethodFinder.java, * gnu/java/beans/decoder/NullHandler.java, * gnu/java/beans/decoder/ObjectContext.java, * gnu/java/beans/decoder/ObjectHandler.java, * gnu/java/beans/decoder/PersistenceParser.java, * gnu/java/beans/decoder/PropertyContext.java, * gnu/java/beans/decoder/ShortHandler.java, * gnu/java/beans/decoder/SimpleHandler.java, * gnu/java/beans/decoder/StaticMethodContext.java, * gnu/java/beans/decoder/StringHandler.java, * gnu/java/beans/decoder/VoidHandler.java, * gnu/java/beans/editors/ColorEditor.java, * gnu/java/beans/editors/FontEditor.java, * gnu/java/beans/editors/NativeBooleanEditor.java, * gnu/java/beans/editors/NativeByteEditor.java, * gnu/java/beans/editors/NativeDoubleEditor.java, * gnu/java/beans/editors/NativeFloatEditor.java, * gnu/java/beans/editors/NativeIntEditor.java, * gnu/java/beans/editors/NativeLongEditor.java, * gnu/java/beans/editors/NativeShortEditor.java, * gnu/java/beans/editors/StringEditor.java, * gnu/java/beans/encoder/ArrayPersistenceDelegate.java, * gnu/java/beans/encoder/ClassPersistenceDelegate.java, * gnu/java/beans/encoder/CollectionPersistenceDelegate.java, * gnu/java/beans/encoder/Context.java, * gnu/java/beans/encoder/GenericScannerState.java, * gnu/java/beans/encoder/IgnoringScannerState.java, * gnu/java/beans/encoder/MapPersistenceDelegate.java, * gnu/java/beans/encoder/ObjectId.java, * gnu/java/beans/encoder/PrimitivePersistenceDelegate.java, * gnu/java/beans/encoder/ReportingScannerState.java, * gnu/java/beans/encoder/Root.java, * gnu/java/beans/encoder/ScanEngine.java, * gnu/java/beans/encoder/ScannerState.java, * gnu/java/beans/encoder/StAXWriter.java, * gnu/java/beans/encoder/Writer.java, * gnu/java/beans/encoder/elements/ArrayInstantiation.java, * gnu/java/beans/encoder/elements/Array_Get.java, * gnu/java/beans/encoder/elements/ClassResolution.java, * gnu/java/beans/encoder/elements/Element.java, * gnu/java/beans/encoder/elements/List_Get.java, * gnu/java/beans/encoder/elements/List_Set.java, * gnu/java/beans/encoder/elements/MethodInvocation.java, * gnu/java/beans/encoder/elements/NullObject.java, * gnu/java/beans/encoder/elements/ObjectInstantiation.java, * gnu/java/beans/encoder/elements/ObjectReference.java, * gnu/java/beans/encoder/elements/PrimitiveInstantiation.java, * gnu/java/beans/encoder/elements/StaticFieldAccess.java, * gnu/java/beans/encoder/elements/StaticMethodInvocation.java, * gnu/java/beans/encoder/elements/StringReference.java, * gnu/java/io/ASN1ParsingException.java, * gnu/java/io/Base64InputStream.java, * gnu/java/io/ClassLoaderObjectInputStream.java, * gnu/java/io/NullOutputStream.java, * gnu/java/io/ObjectIdentityMap2Int.java, * gnu/java/io/ObjectIdentityWrapper.java, * gnu/java/io/PlatformHelper.java, * gnu/java/lang/CPStringBuilder.java, * gnu/java/lang/CharData.java, * gnu/java/lang/InstrumentationImpl.java, * gnu/java/lang/MainThread.java, * gnu/java/lang/management/BeanImpl.java, * gnu/java/lang/management/ClassLoadingMXBeanImpl.java, * gnu/java/lang/management/CompilationMXBeanImpl.java, * gnu/java/lang/management/GarbageCollectorMXBeanImpl.java, * gnu/java/lang/management/MemoryMXBeanImpl.java, * gnu/java/lang/management/MemoryManagerMXBeanImpl.java, * gnu/java/lang/management/MemoryPoolMXBeanImpl.java, * gnu/java/lang/management/OperatingSystemMXBeanImpl.java, * gnu/java/lang/management/RuntimeMXBeanImpl.java, * gnu/java/lang/management/ThreadMXBeanImpl.java, * gnu/java/lang/reflect/TypeSignature.java, * gnu/java/locale/LocaleHelper.java, * gnu/java/math/Fixed.java, * gnu/java/math/GMP.java, * gnu/java/math/MPN.java, * gnu/java/net/CRLFInputStream.java, * gnu/java/net/CRLFOutputStream.java, * gnu/java/net/DefaultContentHandlerFactory.java, * gnu/java/net/DefaultProxySelector.java, * gnu/java/net/EmptyX509TrustManager.java, * gnu/java/net/GetLocalHostAction.java, * gnu/java/net/HeaderFieldHelper.java, * gnu/java/net/IndexListParser.java, * gnu/java/net/LineInputStream.java, * gnu/java/net/PlainDatagramSocketImpl.java, * gnu/java/net/PlainSocketImpl.java, * gnu/java/net/loader/FileResource.java, * gnu/java/net/loader/FileURLLoader.java, * gnu/java/net/loader/JarURLLoader.java, * gnu/java/net/loader/JarURLResource.java, * gnu/java/net/loader/RemoteResource.java, * gnu/java/net/loader/RemoteURLLoader.java, * gnu/java/net/loader/Resource.java, * gnu/java/net/loader/URLLoader.java, * gnu/java/net/protocol/file/Connection.java, * gnu/java/net/protocol/file/Handler.java, * gnu/java/net/protocol/ftp/ActiveModeDTP.java, * gnu/java/net/protocol/ftp/BlockInputStream.java, * gnu/java/net/protocol/ftp/BlockOutputStream.java, * gnu/java/net/protocol/ftp/CompressedInputStream.java, * gnu/java/net/protocol/ftp/CompressedOutputStream.java, * gnu/java/net/protocol/ftp/DTP.java, * gnu/java/net/protocol/ftp/DTPInputStream.java, * gnu/java/net/protocol/ftp/DTPOutputStream.java, * gnu/java/net/protocol/ftp/FTPConnection.java, * gnu/java/net/protocol/ftp/FTPException.java, * gnu/java/net/protocol/ftp/FTPResponse.java, * gnu/java/net/protocol/ftp/FTPURLConnection.java, * gnu/java/net/protocol/ftp/Handler.java, * gnu/java/net/protocol/ftp/PassiveModeDTP.java, * gnu/java/net/protocol/ftp/StreamInputStream.java, * gnu/java/net/protocol/ftp/StreamOutputStream.java, * gnu/java/net/protocol/http/Authenticator.java, * gnu/java/net/protocol/http/ByteArrayRequestBodyWriter.java, * gnu/java/net/protocol/http/ChunkedInputStream.java, * gnu/java/net/protocol/http/Cookie.java, * gnu/java/net/protocol/http/CookieManager.java, * gnu/java/net/protocol/http/Credentials.java, * gnu/java/net/protocol/http/HTTPConnection.java, * gnu/java/net/protocol/http/HTTPDateFormat.java, * gnu/java/net/protocol/http/HTTPURLConnection.java, * gnu/java/net/protocol/http/Handler.java, * gnu/java/net/protocol/http/Headers.java, * gnu/java/net/protocol/http/Request.java, * gnu/java/net/protocol/http/RequestBodyWriter.java, * gnu/java/net/protocol/http/Response.java, * gnu/java/net/protocol/http/ResponseHeaderHandler.java, * gnu/java/net/protocol/http/SimpleCookieManager.java, * gnu/java/net/protocol/https/Handler.java, * gnu/java/net/protocol/jar/Connection.java, * gnu/java/net/protocol/jar/Handler.java, * gnu/java/nio/ChannelInputStream.java, * gnu/java/nio/ChannelOutputStream.java, * gnu/java/nio/ChannelReader.java, * gnu/java/nio/ChannelWriter.java, * gnu/java/nio/DatagramChannelImpl.java, * gnu/java/nio/DatagramChannelSelectionKey.java, * gnu/java/nio/EpollSelectionKeyImpl.java, * gnu/java/nio/EpollSelectorImpl.java, * gnu/java/nio/FileChannelImpl.java, * gnu/java/nio/FileLockImpl.java, * gnu/java/nio/InputStreamChannel.java, * gnu/java/nio/KqueueSelectionKeyImpl.java, * gnu/java/nio/KqueueSelectorImpl.java, * gnu/java/nio/NIODatagramSocket.java, * gnu/java/nio/NIOServerSocket.java, * gnu/java/nio/NIOSocket.java, * gnu/java/nio/NIOSocketImpl.java, * gnu/java/nio/OutputStreamChannel.java, * gnu/java/nio/PipeImpl.java, * gnu/java/nio/SelectionKeyImpl.java, * gnu/java/nio/SelectorImpl.java, * gnu/java/nio/SelectorProviderImpl.java, * gnu/java/nio/ServerSocketChannelImpl.java, * gnu/java/nio/ServerSocketChannelSelectionKey.java, * gnu/java/nio/SocketChannelImpl.java, * gnu/java/nio/SocketChannelSelectionKey.java, * gnu/java/nio/SocketChannelSelectionKeyImpl.java, * gnu/java/nio/VMChannelOwner.java, * gnu/java/nio/charset/ByteCharset.java, * gnu/java/nio/charset/ByteDecodeLoopHelper.java, * gnu/java/nio/charset/ByteEncodeLoopHelper.java, * gnu/java/nio/charset/Cp424.java, * gnu/java/nio/charset/Cp437.java, * gnu/java/nio/charset/Cp737.java, * gnu/java/nio/charset/Cp775.java, * gnu/java/nio/charset/Cp850.java, * gnu/java/nio/charset/Cp852.java, * gnu/java/nio/charset/Cp855.java, * gnu/java/nio/charset/Cp857.java, * gnu/java/nio/charset/Cp860.java, * gnu/java/nio/charset/Cp861.java, * gnu/java/nio/charset/Cp862.java, * gnu/java/nio/charset/Cp863.java, * gnu/java/nio/charset/Cp864.java, * gnu/java/nio/charset/Cp865.java, * gnu/java/nio/charset/Cp866.java, * gnu/java/nio/charset/Cp869.java, * gnu/java/nio/charset/Cp874.java, * gnu/java/nio/charset/EncodingHelper.java, * gnu/java/nio/charset/ISO_8859_1.java, * gnu/java/nio/charset/ISO_8859_13.java, * gnu/java/nio/charset/ISO_8859_15.java, * gnu/java/nio/charset/ISO_8859_2.java, * gnu/java/nio/charset/ISO_8859_3.java, * gnu/java/nio/charset/ISO_8859_4.java, * gnu/java/nio/charset/ISO_8859_5.java, * gnu/java/nio/charset/ISO_8859_6.java, * gnu/java/nio/charset/ISO_8859_7.java, * gnu/java/nio/charset/ISO_8859_8.java, * gnu/java/nio/charset/ISO_8859_9.java, * gnu/java/nio/charset/KOI_8.java, * gnu/java/nio/charset/MS874.java, * gnu/java/nio/charset/MacCentralEurope.java, * gnu/java/nio/charset/MacCroatian.java, * gnu/java/nio/charset/MacCyrillic.java, * gnu/java/nio/charset/MacDingbat.java, * gnu/java/nio/charset/MacGreek.java, * gnu/java/nio/charset/MacIceland.java, * gnu/java/nio/charset/MacRoman.java, * gnu/java/nio/charset/MacRomania.java, * gnu/java/nio/charset/MacSymbol.java, * gnu/java/nio/charset/MacThai.java, * gnu/java/nio/charset/MacTurkish.java, * gnu/java/nio/charset/Provider.java, * gnu/java/nio/charset/US_ASCII.java, * gnu/java/nio/charset/UTF_16.java, * gnu/java/nio/charset/UTF_16BE.java, * gnu/java/nio/charset/UTF_16Decoder.java, * gnu/java/nio/charset/UTF_16Encoder.java, * gnu/java/nio/charset/UTF_16LE.java, * gnu/java/nio/charset/UTF_8.java, * gnu/java/nio/charset/UnicodeLittle.java, * gnu/java/nio/charset/Windows1250.java, * gnu/java/nio/charset/Windows1251.java, * gnu/java/nio/charset/Windows1252.java, * gnu/java/nio/charset/Windows1253.java, * gnu/java/nio/charset/Windows1254.java, * gnu/java/nio/charset/Windows1255.java, * gnu/java/nio/charset/Windows1256.java, * gnu/java/nio/charset/Windows1257.java, * gnu/java/nio/charset/Windows1258.java, * gnu/java/nio/charset/iconv/IconvCharset.java, * gnu/java/nio/charset/iconv/IconvDecoder.java, * gnu/java/nio/charset/iconv/IconvEncoder.java, * gnu/java/nio/charset/iconv/IconvProvider.java, * gnu/java/rmi/RMIMarshalledObjectInputStream.java, * gnu/java/rmi/RMIMarshalledObjectOutputStream.java, * gnu/java/rmi/activation/ActivationSystemTransient.java, * gnu/java/rmi/activation/BidiTable.java, * gnu/java/rmi/activation/DefaultActivationGroup.java, * gnu/java/rmi/activation/DefaultActivationSystem.java, * gnu/java/rmi/dgc/DGCImpl.java, * gnu/java/rmi/dgc/DGCImpl_Skel.java, * gnu/java/rmi/dgc/DGCImpl_Stub.java, * gnu/java/rmi/dgc/LeaseRenewingTask.java, * gnu/java/rmi/registry/RegistryImpl.java, * gnu/java/rmi/registry/RegistryImpl_Skel.java, * gnu/java/rmi/registry/RegistryImpl_Stub.java, * gnu/java/rmi/server/ActivatableRef.java, * gnu/java/rmi/server/ActivatableServerRef.java, * gnu/java/rmi/server/CombinedClassLoader.java, * gnu/java/rmi/server/ConnectionRunnerPool.java, * gnu/java/rmi/server/ProtocolConstants.java, * gnu/java/rmi/server/RMIClassLoaderImpl.java, * gnu/java/rmi/server/RMIDefaultSocketFactory.java, * gnu/java/rmi/server/RMIHashes.java, * gnu/java/rmi/server/RMIIncomingThread.java, * gnu/java/rmi/server/RMIObjectInputStream.java, * gnu/java/rmi/server/RMIObjectOutputStream.java, * gnu/java/rmi/server/UnicastConnection.java, * gnu/java/rmi/server/UnicastConnectionManager.java, * gnu/java/rmi/server/UnicastRef.java, * gnu/java/rmi/server/UnicastRemoteCall.java, * gnu/java/rmi/server/UnicastRemoteStub.java, * gnu/java/rmi/server/UnicastServer.java, * gnu/java/rmi/server/UnicastServerRef.java, * gnu/java/security/Engine.java, * gnu/java/security/OID.java, * gnu/java/security/PolicyFile.java, * gnu/java/security/Properties.java, * gnu/java/security/Registry.java, * gnu/java/security/Requires.java, * gnu/java/security/action/GetPropertyAction.java, * gnu/java/security/action/SetAccessibleAction.java, * gnu/java/security/der/DERValue.java, * gnu/java/security/hash/BaseHash.java, * gnu/java/security/hash/HashFactory.java, * gnu/java/security/hash/Haval.java, * gnu/java/security/hash/IMessageDigest.java, * gnu/java/security/hash/MD2.java, * gnu/java/security/hash/MD4.java, * gnu/java/security/hash/MD5.java, * gnu/java/security/hash/RipeMD128.java, * gnu/java/security/hash/RipeMD160.java, * gnu/java/security/hash/Sha160.java, * gnu/java/security/hash/Sha256.java, * gnu/java/security/hash/Sha384.java, * gnu/java/security/hash/Sha512.java, * gnu/java/security/hash/Tiger.java, * gnu/java/security/hash/Whirlpool.java, * gnu/java/security/jce/hash/HavalSpi.java, * gnu/java/security/jce/hash/MD2Spi.java, * gnu/java/security/jce/hash/MD4Spi.java, * gnu/java/security/jce/hash/MD5Spi.java, * gnu/java/security/jce/hash/MessageDigestAdapter.java, * gnu/java/security/jce/hash/RipeMD128Spi.java, * gnu/java/security/jce/hash/RipeMD160Spi.java, * gnu/java/security/jce/hash/Sha160Spi.java, * gnu/java/security/jce/hash/Sha256Spi.java, * gnu/java/security/jce/hash/Sha384Spi.java, * gnu/java/security/jce/hash/Sha512Spi.java, * gnu/java/security/jce/hash/TigerSpi.java, * gnu/java/security/jce/hash/WhirlpoolSpi.java, * gnu/java/security/jce/prng/HavalRandomSpi.java, * gnu/java/security/jce/prng/MD2RandomSpi.java, * gnu/java/security/jce/prng/MD4RandomSpi.java, * gnu/java/security/jce/prng/MD5RandomSpi.java, * gnu/java/security/jce/prng/RipeMD128RandomSpi.java, * gnu/java/security/jce/prng/RipeMD160RandomSpi.java, * gnu/java/security/jce/prng/SecureRandomAdapter.java, * gnu/java/security/jce/prng/Sha160RandomSpi.java, * gnu/java/security/jce/prng/Sha256RandomSpi.java, * gnu/java/security/jce/prng/Sha384RandomSpi.java, * gnu/java/security/jce/prng/Sha512RandomSpi.java, * gnu/java/security/jce/prng/TigerRandomSpi.java, * gnu/java/security/jce/prng/WhirlpoolRandomSpi.java, * gnu/java/security/jce/sig/DSSKeyFactory.java, * gnu/java/security/jce/sig/DSSKeyPairGeneratorSpi.java, * gnu/java/security/jce/sig/DSSParameters.java, * gnu/java/security/jce/sig/DSSRawSignatureSpi.java, * gnu/java/security/jce/sig/KeyPairGeneratorAdapter.java, * gnu/java/security/jce/sig/RSAPSSRawSignatureSpi.java, * gnu/java/security/jce/sig/SignatureAdapter.java, * gnu/java/security/key/IKeyPairCodec.java, * gnu/java/security/key/IKeyPairGenerator.java, * gnu/java/security/key/KeyPairCodecFactory.java, * gnu/java/security/key/KeyPairGeneratorFactory.java, * gnu/java/security/key/dss/DSSKey.java, * gnu/java/security/key/dss/DSSKeyPairGenerator.java, * gnu/java/security/key/dss/DSSKeyPairPKCS8Codec.java, * gnu/java/security/key/dss/DSSKeyPairRawCodec.java, * gnu/java/security/key/dss/DSSKeyPairX509Codec.java, * gnu/java/security/key/dss/DSSPrivateKey.java, * gnu/java/security/key/dss/DSSPublicKey.java, * gnu/java/security/key/dss/FIPS186.java, * gnu/java/security/key/rsa/GnuRSAKey.java, * gnu/java/security/key/rsa/GnuRSAPrivateKey.java, * gnu/java/security/key/rsa/GnuRSAPublicKey.java, * gnu/java/security/key/rsa/RSAKeyPairGenerator.java, * gnu/java/security/key/rsa/RSAKeyPairPKCS8Codec.java, * gnu/java/security/key/rsa/RSAKeyPairRawCodec.java, * gnu/java/security/key/rsa/RSAKeyPairX509Codec.java, * gnu/java/security/pkcs/PKCS7Data.java, * gnu/java/security/pkcs/PKCS7SignedData.java, * gnu/java/security/pkcs/SignerInfo.java, * gnu/java/security/prng/BasePRNG.java, * gnu/java/security/prng/EntropySource.java, * gnu/java/security/prng/IRandom.java, * gnu/java/security/prng/LimitReachedException.java, * gnu/java/security/prng/MDGenerator.java, * gnu/java/security/prng/PRNGFactory.java, * gnu/java/security/prng/RandomEventListener.java, * gnu/java/security/provider/DefaultPolicy.java, * gnu/java/security/provider/PKIXCertPathValidatorImpl.java, * gnu/java/security/sig/BaseSignature.java, * gnu/java/security/sig/ISignature.java, * gnu/java/security/sig/ISignatureCodec.java, * gnu/java/security/sig/SignatureCodecFactory.java, * gnu/java/security/sig/SignatureFactory.java, * gnu/java/security/sig/dss/DSSSignature.java, * gnu/java/security/sig/dss/DSSSignatureRawCodec.java, * gnu/java/security/sig/dss/DSSSignatureX509Codec.java, * gnu/java/security/sig/rsa/EME_PKCS1_V1_5.java, * gnu/java/security/sig/rsa/EMSA_PKCS1_V1_5.java, * gnu/java/security/sig/rsa/EMSA_PSS.java, * gnu/java/security/sig/rsa/RSA.java, * gnu/java/security/sig/rsa/RSAPKCS1V1_5Signature.java, * gnu/java/security/sig/rsa/RSAPKCS1V1_5SignatureRawCodec.java, * gnu/java/security/sig/rsa/RSAPKCS1V1_5SignatureX509Codec.java, * gnu/java/security/sig/rsa/RSAPSSSignature.java, * gnu/java/security/sig/rsa/RSAPSSSignatureRawCodec.java, * gnu/java/security/sig/rsa/RSASignatureFactory.java, * gnu/java/security/util/ByteArray.java, * gnu/java/security/util/ByteBufferOutputStream.java, * gnu/java/security/util/ExpirableObject.java, * gnu/java/security/util/FormatUtil.java, * gnu/java/security/util/IntegerUtil.java, * gnu/java/security/util/PRNG.java, * gnu/java/security/util/Prime.java, * gnu/java/security/util/Sequence.java, * gnu/java/security/util/SimpleList.java, * gnu/java/security/util/Util.java, * gnu/java/security/x509/X509CRLSelectorImpl.java, * gnu/java/security/x509/X509CertSelectorImpl.java, * gnu/java/security/x509/ext/CertificatePolicies.java, * gnu/java/security/x509/ext/GeneralName.java, * gnu/java/security/x509/ext/GeneralSubtree.java, * gnu/java/security/x509/ext/NameConstraints.java, * gnu/java/text/AttributedFormatBuffer.java, * gnu/java/text/BaseBreakIterator.java, * gnu/java/text/CharacterBreakIterator.java, * gnu/java/text/FormatBuffer.java, * gnu/java/text/FormatCharacterIterator.java, * gnu/java/text/LineBreakIterator.java, * gnu/java/text/SentenceBreakIterator.java, * gnu/java/text/StringFormatBuffer.java, * gnu/java/text/WordBreakIterator.java, * gnu/java/util/Base64.java, * gnu/java/util/DoubleEnumeration.java, * gnu/java/util/EmptyEnumeration.java, * gnu/java/util/WeakIdentityHashMap.java, * gnu/java/util/ZoneInfo.java, * gnu/java/util/jar/JarUtils.java, * gnu/java/util/prefs/FileBasedFactory.java, * gnu/java/util/prefs/FileBasedPreferences.java, * gnu/java/util/prefs/GConfBasedFactory.java, * gnu/java/util/prefs/GConfBasedPreferences.java, * gnu/java/util/prefs/MemoryBasedFactory.java, * gnu/java/util/prefs/MemoryBasedPreferences.java, * gnu/java/util/prefs/NodeReader.java, * gnu/java/util/prefs/NodeWriter.java, * gnu/java/util/prefs/gconf/GConfNativePeer.java, * gnu/java/util/regex/BacktrackStack.java, * gnu/java/util/regex/CharIndexed.java, * gnu/java/util/regex/CharIndexedInputStream.java, * gnu/java/util/regex/RE.java, * gnu/java/util/regex/REFilterInputStream.java, * gnu/java/util/regex/REMatch.java, * gnu/java/util/regex/REMatchEnumeration.java, * gnu/java/util/regex/RESyntax.java, * gnu/java/util/regex/REToken.java, * gnu/java/util/regex/RETokenAny.java, * gnu/java/util/regex/RETokenBackRef.java, * gnu/java/util/regex/RETokenChar.java, * gnu/java/util/regex/RETokenEnd.java, * gnu/java/util/regex/RETokenEndOfPreviousMatch.java, * gnu/java/util/regex/RETokenIndependent.java, * gnu/java/util/regex/RETokenLookAhead.java, * gnu/java/util/regex/RETokenLookBehind.java, * gnu/java/util/regex/RETokenNamedProperty.java, * gnu/java/util/regex/RETokenOneOf.java, * gnu/java/util/regex/RETokenPOSIX.java, * gnu/java/util/regex/RETokenRange.java, * gnu/java/util/regex/RETokenRepeated.java, * gnu/java/util/regex/RETokenStart.java, * gnu/java/util/regex/RETokenWordBoundary.java, * gnu/java/util/regex/UncheckedRE.java, * gnu/javax/activation/viewers/ImageViewer.java, * gnu/javax/activation/viewers/TextEditor.java, * gnu/javax/activation/viewers/TextViewer.java, * gnu/javax/crypto/assembly/Assembly.java, * gnu/javax/crypto/assembly/Cascade.java, * gnu/javax/crypto/assembly/CascadeStage.java, * gnu/javax/crypto/assembly/CascadeTransformer.java, * gnu/javax/crypto/assembly/DeflateTransformer.java, * gnu/javax/crypto/assembly/Direction.java, * gnu/javax/crypto/assembly/LoopbackTransformer.java, * gnu/javax/crypto/assembly/ModeStage.java, * gnu/javax/crypto/assembly/Operation.java, * gnu/javax/crypto/assembly/PaddingTransformer.java, * gnu/javax/crypto/assembly/Stage.java, * gnu/javax/crypto/assembly/Transformer.java, * gnu/javax/crypto/assembly/TransformerException.java, * gnu/javax/crypto/cipher/Anubis.java, * gnu/javax/crypto/cipher/BaseCipher.java, * gnu/javax/crypto/cipher/Blowfish.java, * gnu/javax/crypto/cipher/Cast5.java, * gnu/javax/crypto/cipher/CipherFactory.java, * gnu/javax/crypto/cipher/DES.java, * gnu/javax/crypto/cipher/IBlockCipher.java, * gnu/javax/crypto/cipher/IBlockCipherSpi.java, * gnu/javax/crypto/cipher/Khazad.java, * gnu/javax/crypto/cipher/NullCipher.java, * gnu/javax/crypto/cipher/Rijndael.java, * gnu/javax/crypto/cipher/Serpent.java, * gnu/javax/crypto/cipher/Square.java, * gnu/javax/crypto/cipher/TripleDES.java, * gnu/javax/crypto/cipher/Twofish.java, * gnu/javax/crypto/cipher/WeakKeyException.java, * gnu/javax/crypto/jce/DiffieHellmanImpl.java, * gnu/javax/crypto/jce/GnuCrypto.java, * gnu/javax/crypto/jce/GnuSasl.java, * gnu/javax/crypto/jce/PBKDF2SecretKeyFactory.java, * gnu/javax/crypto/jce/cipher/AESKeyWrapSpi.java, * gnu/javax/crypto/jce/cipher/AESSpi.java, * gnu/javax/crypto/jce/cipher/ARCFourSpi.java, * gnu/javax/crypto/jce/cipher/AnubisSpi.java, * gnu/javax/crypto/jce/cipher/BlowfishSpi.java, * gnu/javax/crypto/jce/cipher/Cast5Spi.java, * gnu/javax/crypto/jce/cipher/CipherAdapter.java, * gnu/javax/crypto/jce/cipher/DESSpi.java, * gnu/javax/crypto/jce/cipher/KeyWrappingAlgorithmAdapter.java, * gnu/javax/crypto/jce/cipher/KhazadSpi.java, * gnu/javax/crypto/jce/cipher/NullCipherSpi.java, * gnu/javax/crypto/jce/cipher/PBES2.java, * gnu/javax/crypto/jce/cipher/RijndaelSpi.java, * gnu/javax/crypto/jce/cipher/SerpentSpi.java, * gnu/javax/crypto/jce/cipher/SquareSpi.java, * gnu/javax/crypto/jce/cipher/TripleDESSpi.java, * gnu/javax/crypto/jce/cipher/TwofishSpi.java, * gnu/javax/crypto/jce/key/AnubisSecretKeyFactoryImpl.java, * gnu/javax/crypto/jce/key/BlowfishSecretKeyFactoryImpl.java, * gnu/javax/crypto/jce/key/Cast5SecretKeyFactoryImpl.java, * gnu/javax/crypto/jce/key/SecretKeyGeneratorImpl.java, * gnu/javax/crypto/jce/keyring/GnuKeyring.java, * gnu/javax/crypto/jce/mac/HMacHavalSpi.java, * gnu/javax/crypto/jce/mac/HMacMD2Spi.java, * gnu/javax/crypto/jce/mac/HMacMD4Spi.java, * gnu/javax/crypto/jce/mac/HMacMD5Spi.java, * gnu/javax/crypto/jce/mac/HMacRipeMD128Spi.java, * gnu/javax/crypto/jce/mac/HMacRipeMD160Spi.java, * gnu/javax/crypto/jce/mac/HMacSHA160Spi.java, * gnu/javax/crypto/jce/mac/HMacSHA256Spi.java, * gnu/javax/crypto/jce/mac/HMacSHA384Spi.java, * gnu/javax/crypto/jce/mac/HMacSHA512Spi.java, * gnu/javax/crypto/jce/mac/HMacTigerSpi.java, * gnu/javax/crypto/jce/mac/HMacWhirlpoolSpi.java, * gnu/javax/crypto/jce/mac/MacAdapter.java, * gnu/javax/crypto/jce/mac/TMMH16Spi.java, * gnu/javax/crypto/jce/mac/UHash32Spi.java, * gnu/javax/crypto/jce/mac/UMac32Spi.java, * gnu/javax/crypto/jce/params/BlockCipherParameters.java, * gnu/javax/crypto/jce/params/DEREncodingException.java, * gnu/javax/crypto/jce/params/DERReader.java, * gnu/javax/crypto/jce/params/DERWriter.java, * gnu/javax/crypto/jce/prng/ARCFourRandomSpi.java, * gnu/javax/crypto/jce/prng/CSPRNGSpi.java, * gnu/javax/crypto/jce/prng/FortunaImpl.java, * gnu/javax/crypto/jce/prng/ICMRandomSpi.java, * gnu/javax/crypto/jce/prng/UMacRandomSpi.java, * gnu/javax/crypto/jce/sig/DHParameters.java, * gnu/javax/crypto/jce/spec/BlockCipherParameterSpec.java, * gnu/javax/crypto/jce/spec/TMMHParameterSpec.java, * gnu/javax/crypto/jce/spec/UMac32ParameterSpec.java, * gnu/javax/crypto/key/BaseKeyAgreementParty.java, * gnu/javax/crypto/key/GnuPBEKey.java, * gnu/javax/crypto/key/GnuSecretKey.java, * gnu/javax/crypto/key/IKeyAgreementParty.java, * gnu/javax/crypto/key/IncomingMessage.java, * gnu/javax/crypto/key/KeyAgreementException.java, * gnu/javax/crypto/key/KeyAgreementFactory.java, * gnu/javax/crypto/key/OutgoingMessage.java, * gnu/javax/crypto/key/dh/DHKeyPairPKCS8Codec.java, * gnu/javax/crypto/key/dh/DHKeyPairRawCodec.java, * gnu/javax/crypto/key/dh/DHKeyPairX509Codec.java, * gnu/javax/crypto/key/dh/DiffieHellmanKeyAgreement.java, * gnu/javax/crypto/key/dh/DiffieHellmanReceiver.java, * gnu/javax/crypto/key/dh/DiffieHellmanSender.java, * gnu/javax/crypto/key/dh/ElGamalKeyAgreement.java, * gnu/javax/crypto/key/dh/ElGamalReceiver.java, * gnu/javax/crypto/key/dh/ElGamalSender.java, * gnu/javax/crypto/key/dh/GnuDHKey.java, * gnu/javax/crypto/key/dh/GnuDHKeyPairGenerator.java, * gnu/javax/crypto/key/dh/GnuDHPrivateKey.java, * gnu/javax/crypto/key/dh/GnuDHPublicKey.java, * gnu/javax/crypto/key/dh/RFC2631.java, * gnu/javax/crypto/key/srp6/SRP6Host.java, * gnu/javax/crypto/key/srp6/SRP6KeyAgreement.java, * gnu/javax/crypto/key/srp6/SRP6SaslClient.java, * gnu/javax/crypto/key/srp6/SRP6SaslServer.java, * gnu/javax/crypto/key/srp6/SRP6TLSClient.java, * gnu/javax/crypto/key/srp6/SRP6TLSServer.java, * gnu/javax/crypto/key/srp6/SRP6User.java, * gnu/javax/crypto/key/srp6/SRPAlgorithm.java, * gnu/javax/crypto/key/srp6/SRPKey.java, * gnu/javax/crypto/key/srp6/SRPKeyPairGenerator.java, * gnu/javax/crypto/key/srp6/SRPKeyPairRawCodec.java, * gnu/javax/crypto/key/srp6/SRPPrivateKey.java, * gnu/javax/crypto/key/srp6/SRPPublicKey.java, * gnu/javax/crypto/keyring/AuthenticatedEntry.java, * gnu/javax/crypto/keyring/BaseKeyring.java, * gnu/javax/crypto/keyring/BinaryDataEntry.java, * gnu/javax/crypto/keyring/CertPathEntry.java, * gnu/javax/crypto/keyring/CertificateEntry.java, * gnu/javax/crypto/keyring/CompressedEntry.java, * gnu/javax/crypto/keyring/EncryptedEntry.java, * gnu/javax/crypto/keyring/Entry.java, * gnu/javax/crypto/keyring/EnvelopeEntry.java, * gnu/javax/crypto/keyring/GnuPrivateKeyring.java, * gnu/javax/crypto/keyring/GnuPublicKeyring.java, * gnu/javax/crypto/keyring/IKeyring.java, * gnu/javax/crypto/keyring/IPrivateKeyring.java, * gnu/javax/crypto/keyring/IPublicKeyring.java, * gnu/javax/crypto/keyring/MalformedKeyringException.java, * gnu/javax/crypto/keyring/MaskableEnvelopeEntry.java, * gnu/javax/crypto/keyring/MeteredInputStream.java, * gnu/javax/crypto/keyring/PasswordAuthenticatedEntry.java, * gnu/javax/crypto/keyring/PasswordEncryptedEntry.java, * gnu/javax/crypto/keyring/PasswordProtectedEntry.java, * gnu/javax/crypto/keyring/PrimitiveEntry.java, * gnu/javax/crypto/keyring/PrivateKeyEntry.java, * gnu/javax/crypto/keyring/Properties.java, * gnu/javax/crypto/keyring/PublicKeyEntry.java, * gnu/javax/crypto/kwa/BaseKeyWrappingAlgorithm.java, * gnu/javax/crypto/kwa/IKeyWrappingAlgorithm.java, * gnu/javax/crypto/kwa/KeyWrappingAlgorithmFactory.java, * gnu/javax/crypto/kwa/TripleDESKeyWrap.java, * gnu/javax/crypto/mac/BaseMac.java, * gnu/javax/crypto/mac/HMac.java, * gnu/javax/crypto/mac/HMacFactory.java, * gnu/javax/crypto/mac/IMac.java, * gnu/javax/crypto/mac/MacFactory.java, * gnu/javax/crypto/mac/MacInputStream.java, * gnu/javax/crypto/mac/MacOutputStream.java, * gnu/javax/crypto/mac/OMAC.java, * gnu/javax/crypto/mac/TMMH16.java, * gnu/javax/crypto/mac/UHash32.java, * gnu/javax/crypto/mac/UMac32.java, * gnu/javax/crypto/mode/BaseMode.java, * gnu/javax/crypto/mode/CBC.java, * gnu/javax/crypto/mode/CFB.java, * gnu/javax/crypto/mode/CTR.java, * gnu/javax/crypto/mode/EAX.java, * gnu/javax/crypto/mode/ECB.java, * gnu/javax/crypto/mode/IAuthenticatedMode.java, * gnu/javax/crypto/mode/ICM.java, * gnu/javax/crypto/mode/IMode.java, * gnu/javax/crypto/mode/ModeFactory.java, * gnu/javax/crypto/mode/OFB.java, * gnu/javax/crypto/pad/BasePad.java, * gnu/javax/crypto/pad/IPad.java, * gnu/javax/crypto/pad/PKCS1_V1_5.java, * gnu/javax/crypto/pad/PKCS7.java, * gnu/javax/crypto/pad/PadFactory.java, * gnu/javax/crypto/pad/TBC.java, * gnu/javax/crypto/pad/WrongPaddingException.java, * gnu/javax/crypto/prng/ARCFour.java, * gnu/javax/crypto/prng/CSPRNG.java, * gnu/javax/crypto/prng/ICMGenerator.java, * gnu/javax/crypto/prng/IPBE.java, * gnu/javax/crypto/prng/PBKDF2.java, * gnu/javax/crypto/prng/PRNGFactory.java, * gnu/javax/crypto/prng/UMacGenerator.java, * gnu/javax/crypto/sasl/AuthInfo.java, * gnu/javax/crypto/sasl/AuthInfoProviderFactory.java, * gnu/javax/crypto/sasl/ClientFactory.java, * gnu/javax/crypto/sasl/ClientMechanism.java, * gnu/javax/crypto/sasl/ConfidentialityException.java, * gnu/javax/crypto/sasl/IAuthInfoProvider.java, * gnu/javax/crypto/sasl/IAuthInfoProviderFactory.java, * gnu/javax/crypto/sasl/IllegalMechanismStateException.java, * gnu/javax/crypto/sasl/InputBuffer.java, * gnu/javax/crypto/sasl/IntegrityException.java, * gnu/javax/crypto/sasl/NoSuchMechanismException.java, * gnu/javax/crypto/sasl/NoSuchUserException.java, * gnu/javax/crypto/sasl/OutputBuffer.java, * gnu/javax/crypto/sasl/SaslEncodingException.java, * gnu/javax/crypto/sasl/SaslInputStream.java, * gnu/javax/crypto/sasl/SaslOutputStream.java, * gnu/javax/crypto/sasl/SaslUtil.java, * gnu/javax/crypto/sasl/ServerFactory.java, * gnu/javax/crypto/sasl/ServerMechanism.java, * gnu/javax/crypto/sasl/UserAlreadyExistsException.java, * gnu/javax/crypto/sasl/anonymous/AnonymousClient.java, * gnu/javax/crypto/sasl/anonymous/AnonymousServer.java, * gnu/javax/crypto/sasl/anonymous/AnonymousUtil.java, * gnu/javax/crypto/sasl/crammd5/CramMD5AuthInfoProvider.java, * gnu/javax/crypto/sasl/crammd5/CramMD5Client.java, * gnu/javax/crypto/sasl/crammd5/CramMD5Registry.java, * gnu/javax/crypto/sasl/crammd5/CramMD5Server.java, * gnu/javax/crypto/sasl/crammd5/CramMD5Util.java, * gnu/javax/crypto/sasl/crammd5/PasswordFile.java, * gnu/javax/crypto/sasl/plain/PasswordFile.java, * gnu/javax/crypto/sasl/plain/PlainAuthInfoProvider.java, * gnu/javax/crypto/sasl/plain/PlainClient.java, * gnu/javax/crypto/sasl/plain/PlainRegistry.java, * gnu/javax/crypto/sasl/plain/PlainServer.java, * gnu/javax/crypto/sasl/srp/CALG.java, * gnu/javax/crypto/sasl/srp/ClientStore.java, * gnu/javax/crypto/sasl/srp/IALG.java, * gnu/javax/crypto/sasl/srp/KDF.java, * gnu/javax/crypto/sasl/srp/PasswordFile.java, * gnu/javax/crypto/sasl/srp/SRP.java, * gnu/javax/crypto/sasl/srp/SRPAuthInfoProvider.java, * gnu/javax/crypto/sasl/srp/SRPClient.java, * gnu/javax/crypto/sasl/srp/SRPRegistry.java, * gnu/javax/crypto/sasl/srp/SRPServer.java, * gnu/javax/crypto/sasl/srp/SecurityContext.java, * gnu/javax/crypto/sasl/srp/ServerStore.java, * gnu/javax/crypto/sasl/srp/StoreEntry.java, * gnu/javax/imageio/IIOInputStream.java, * gnu/javax/imageio/bmp/BMPDecoder.java, * gnu/javax/imageio/bmp/BMPEncoder.java, * gnu/javax/imageio/bmp/BMPException.java, * gnu/javax/imageio/bmp/BMPFileHeader.java, * gnu/javax/imageio/bmp/BMPImageReader.java, * gnu/javax/imageio/bmp/BMPImageReaderSpi.java, * gnu/javax/imageio/bmp/BMPImageWriter.java, * gnu/javax/imageio/bmp/BMPImageWriterSpi.java, * gnu/javax/imageio/bmp/BMPInfoHeader.java, * gnu/javax/imageio/bmp/DecodeBF16.java, * gnu/javax/imageio/bmp/DecodeBF32.java, * gnu/javax/imageio/bmp/DecodeRGB1.java, * gnu/javax/imageio/bmp/DecodeRGB24.java, * gnu/javax/imageio/bmp/DecodeRGB4.java, * gnu/javax/imageio/bmp/DecodeRGB8.java, * gnu/javax/imageio/bmp/DecodeRLE4.java, * gnu/javax/imageio/bmp/DecodeRLE8.java, * gnu/javax/imageio/bmp/EncodeRGB1.java, * gnu/javax/imageio/bmp/EncodeRGB16.java, * gnu/javax/imageio/bmp/EncodeRGB24.java, * gnu/javax/imageio/bmp/EncodeRGB32.java, * gnu/javax/imageio/bmp/EncodeRGB4.java, * gnu/javax/imageio/bmp/EncodeRGB8.java, * gnu/javax/imageio/bmp/EncodeRLE4.java, * gnu/javax/imageio/bmp/EncodeRLE8.java, * gnu/javax/imageio/gif/GIFFile.java, * gnu/javax/imageio/gif/GIFImageReader.java, * gnu/javax/imageio/gif/GIFImageReaderSpi.java, * gnu/javax/imageio/jpeg/DCT.java, * gnu/javax/imageio/jpeg/JPEGComponent.java, * gnu/javax/imageio/jpeg/JPEGDecoder.java, * gnu/javax/imageio/jpeg/JPEGImageInputStream.java, * gnu/javax/imageio/jpeg/JPEGImageReader.java, * gnu/javax/imageio/jpeg/JPEGImageReaderSpi.java, * gnu/javax/imageio/jpeg/JPEGMarker.java, * gnu/javax/imageio/jpeg/ZigZag.java, * gnu/javax/imageio/png/PNGChunk.java, * gnu/javax/imageio/png/PNGData.java, * gnu/javax/imageio/png/PNGDecoder.java, * gnu/javax/imageio/png/PNGEncoder.java, * gnu/javax/imageio/png/PNGException.java, * gnu/javax/imageio/png/PNGFile.java, * gnu/javax/imageio/png/PNGFilter.java, * gnu/javax/imageio/png/PNGGamma.java, * gnu/javax/imageio/png/PNGHeader.java, * gnu/javax/imageio/png/PNGICCProfile.java, * gnu/javax/imageio/png/PNGImageReader.java, * gnu/javax/imageio/png/PNGPalette.java, * gnu/javax/imageio/png/PNGPhys.java, * gnu/javax/imageio/png/PNGTime.java, * gnu/javax/management/ListenerData.java, * gnu/javax/management/Server.java, * gnu/javax/management/Translator.java, * gnu/javax/naming/giop/ContextContinuation.java, * gnu/javax/naming/giop/CorbalocParser.java, * gnu/javax/naming/giop/GiopNamingEnumeration.java, * gnu/javax/naming/giop/GiopNamingServiceFactory.java, * gnu/javax/naming/giop/GiopNamingServiceURLContext.java, * gnu/javax/naming/giop/ListBindingsEnumeration.java, * gnu/javax/naming/giop/ListEnumeration.java, * gnu/javax/naming/ictxImpl/trans/GnuName.java, * gnu/javax/naming/jndi/url/corbaname/corbanameURLContextFactory.java, * gnu/javax/naming/jndi/url/rmi/ContextContinuation.java, * gnu/javax/naming/jndi/url/rmi/ListBindingsEnumeration.java, * gnu/javax/naming/jndi/url/rmi/ListEnumeration.java, * gnu/javax/naming/jndi/url/rmi/RmiContinuation.java, * gnu/javax/naming/jndi/url/rmi/RmiNamingEnumeration.java, * gnu/javax/naming/jndi/url/rmi/rmiURLContext.java, * gnu/javax/naming/jndi/url/rmi/rmiURLContextFactory.java, * gnu/javax/net/ssl/AbstractSessionContext.java, * gnu/javax/net/ssl/PreSharedKeyManager.java, * gnu/javax/net/ssl/PreSharedKeyManagerParameters.java, * gnu/javax/net/ssl/SSLCipherSuite.java, * gnu/javax/net/ssl/SSLRecordHandler.java, * gnu/javax/net/ssl/Session.java, * gnu/javax/net/ssl/SessionStoreException.java, * gnu/javax/net/ssl/provider/AbstractHandshake.java, * gnu/javax/net/ssl/provider/Alert.java, * gnu/javax/net/ssl/provider/AlertException.java, * gnu/javax/net/ssl/provider/Builder.java, * gnu/javax/net/ssl/provider/Certificate.java, * gnu/javax/net/ssl/provider/CertificateBuilder.java, * gnu/javax/net/ssl/provider/CertificateRequest.java, * gnu/javax/net/ssl/provider/CertificateRequestBuilder.java, * gnu/javax/net/ssl/provider/CertificateStatusRequest.java, * gnu/javax/net/ssl/provider/CertificateStatusType.java, * gnu/javax/net/ssl/provider/CertificateURL.java, * gnu/javax/net/ssl/provider/CertificateVerify.java, * gnu/javax/net/ssl/provider/CipherSuite.java, * gnu/javax/net/ssl/provider/CipherSuiteList.java, * gnu/javax/net/ssl/provider/ClientCertificateTypeList.java, * gnu/javax/net/ssl/provider/ClientDHE_PSKParameters.java, * gnu/javax/net/ssl/provider/ClientDiffieHellmanPublic.java, * gnu/javax/net/ssl/provider/ClientHandshake.java, * gnu/javax/net/ssl/provider/ClientHello.java, * gnu/javax/net/ssl/provider/ClientHelloBuilder.java, * gnu/javax/net/ssl/provider/ClientHelloV2.java, * gnu/javax/net/ssl/provider/ClientKeyExchangeBuilder.java, * gnu/javax/net/ssl/provider/ClientPSKParameters.java, * gnu/javax/net/ssl/provider/ClientRSA_PSKParameters.java, * gnu/javax/net/ssl/provider/CompressionMethod.java, * gnu/javax/net/ssl/provider/CompressionMethodList.java, * gnu/javax/net/ssl/provider/Constructed.java, * gnu/javax/net/ssl/provider/Debug.java, * gnu/javax/net/ssl/provider/DelegatedTask.java, * gnu/javax/net/ssl/provider/EmptyExchangeKeys.java, * gnu/javax/net/ssl/provider/EncryptedPreMasterSecret.java, * gnu/javax/net/ssl/provider/ExchangeKeys.java, * gnu/javax/net/ssl/provider/Extension.java, * gnu/javax/net/ssl/provider/ExtensionList.java, * gnu/javax/net/ssl/provider/Handshake.java, * gnu/javax/net/ssl/provider/InputSecurityParameters.java, * gnu/javax/net/ssl/provider/Jessie.java, * gnu/javax/net/ssl/provider/MaxFragmentLength.java, * gnu/javax/net/ssl/provider/OutputSecurityParameters.java, * gnu/javax/net/ssl/provider/PreSharedKeyManagerFactoryImpl.java, * gnu/javax/net/ssl/provider/Random.java, * gnu/javax/net/ssl/provider/SSLContextImpl.java, * gnu/javax/net/ssl/provider/SSLEngineImpl.java, * gnu/javax/net/ssl/provider/SSLRSASignatureImpl.java, * gnu/javax/net/ssl/provider/SSLServerSocketFactoryImpl.java, * gnu/javax/net/ssl/provider/SSLServerSocketImpl.java, * gnu/javax/net/ssl/provider/SSLSocketFactoryImpl.java, * gnu/javax/net/ssl/provider/SSLSocketImpl.java, * gnu/javax/net/ssl/provider/SSLv3HMacMD5Impl.java, * gnu/javax/net/ssl/provider/SSLv3HMacSHAImpl.java, * gnu/javax/net/ssl/provider/ServerDHE_PSKParameters.java, * gnu/javax/net/ssl/provider/ServerDHParams.java, * gnu/javax/net/ssl/provider/ServerHandshake.java, * gnu/javax/net/ssl/provider/ServerHello.java, * gnu/javax/net/ssl/provider/ServerHelloBuilder.java, * gnu/javax/net/ssl/provider/ServerHelloDone.java, * gnu/javax/net/ssl/provider/ServerKeyExchangeBuilder.java, * gnu/javax/net/ssl/provider/ServerNameList.java, * gnu/javax/net/ssl/provider/ServerPSKParameters.java, * gnu/javax/net/ssl/provider/ServerRSA_PSKParameters.java, * gnu/javax/net/ssl/provider/SessionImpl.java, * gnu/javax/net/ssl/provider/Signature.java, * gnu/javax/net/ssl/provider/SignatureAlgorithm.java, * gnu/javax/net/ssl/provider/SimpleSessionContext.java, * gnu/javax/net/ssl/provider/TruncatedHMAC.java, * gnu/javax/net/ssl/provider/TrustedAuthorities.java, * gnu/javax/net/ssl/provider/UnresolvedExtensionValue.java, * gnu/javax/net/ssl/provider/Util.java, * gnu/javax/net/ssl/provider/X500PrincipalList.java, * gnu/javax/net/ssl/provider/X509KeyManagerFactory.java, * gnu/javax/net/ssl/provider/X509TrustManagerFactory.java, * gnu/javax/print/ipp/IppRequest.java, * gnu/javax/rmi/CORBA/CorbaInput.java, * gnu/javax/rmi/CORBA/CorbaOutput.java, * gnu/javax/rmi/CORBA/DefaultWriteObjectTester.java, * gnu/javax/rmi/CORBA/DelegateFactory.java, * gnu/javax/rmi/CORBA/GetDelegateInstanceException.java, * gnu/javax/rmi/CORBA/PortableRemoteObjectDelegateImpl.java, * gnu/javax/rmi/CORBA/RmiUtilities.java, * gnu/javax/rmi/CORBA/StubDelegateImpl.java, * gnu/javax/rmi/CORBA/TieTargetRecord.java, * gnu/javax/rmi/CORBA/UtilDelegateImpl.java, * gnu/javax/rmi/CORBA/ValueHandlerDelegateImpl.java, * gnu/javax/security/auth/callback/AWTCallbackHandler.java, * gnu/javax/security/auth/callback/AbstractCallbackHandler.java, * gnu/javax/security/auth/callback/CertificateCallback.java, * gnu/javax/security/auth/callback/ConsoleCallbackHandler.java, * gnu/javax/security/auth/callback/DefaultCallbackHandler.java, * gnu/javax/security/auth/callback/SwingCallbackHandler.java, * gnu/javax/security/auth/login/ConfigFileParser.java, * gnu/javax/security/auth/login/ConfigFileTokenizer.java, * gnu/javax/security/auth/login/GnuConfiguration.java, * gnu/javax/sound/AudioSecurityManager.java, * gnu/javax/sound/midi/alsa/AlsaInputPortDevice.java, * gnu/javax/sound/midi/alsa/AlsaMidiDeviceProvider.java, * gnu/javax/sound/midi/alsa/AlsaMidiSequencerDevice.java, * gnu/javax/sound/midi/alsa/AlsaOutputPortDevice.java, * gnu/javax/sound/midi/alsa/AlsaPortDevice.java, * gnu/javax/sound/midi/dssi/DSSIMidiDeviceProvider.java, * gnu/javax/sound/midi/dssi/DSSISynthesizer.java, * gnu/javax/sound/midi/file/ExtendedMidiFileFormat.java, * gnu/javax/sound/midi/file/MidiDataInputStream.java, * gnu/javax/sound/midi/file/MidiDataOutputStream.java, * gnu/javax/sound/midi/file/MidiFileReader.java, * gnu/javax/sound/midi/file/MidiFileWriter.java, * gnu/javax/sound/sampled/AU/AUReader.java, * gnu/javax/sound/sampled/WAV/WAVReader.java, * gnu/javax/sound/sampled/gstreamer/GStreamerMixer.java, * gnu/javax/sound/sampled/gstreamer/GStreamerMixerProvider.java, * gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReader.java, * gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReaderNativePeer.java, * gnu/javax/sound/sampled/gstreamer/io/GstInputStream.java, * gnu/javax/sound/sampled/gstreamer/lines/GstDataLine.java, * gnu/javax/sound/sampled/gstreamer/lines/GstNativeDataLine.java, * gnu/javax/sound/sampled/gstreamer/lines/GstPipeline.java, * gnu/javax/sound/sampled/gstreamer/lines/GstSourceDataLine.java, * gnu/javax/swing/plaf/gnu/GNULookAndFeel.java, * gnu/javax/swing/text/html/CharacterAttributeTranslator.java, * gnu/javax/swing/text/html/CombinedAttributes.java, * gnu/javax/swing/text/html/ImageViewIconFactory.java, * gnu/javax/swing/text/html/css/BorderStyle.java, * gnu/javax/swing/text/html/css/CSSParser.java, * gnu/javax/swing/text/html/css/CSSScanner.java, * gnu/javax/swing/text/html/css/Selector.java, * gnu/javax/swing/text/html/parser/GnuParserDelegator.java, * gnu/javax/swing/text/html/parser/HTML_401F.java, * gnu/javax/swing/text/html/parser/SmallHtmlAttributeSet.java, * gnu/javax/swing/text/html/parser/htmlAttributeSet.java, * gnu/javax/swing/text/html/parser/htmlValidator.java, * gnu/javax/swing/text/html/parser/models/list.java, * gnu/javax/swing/text/html/parser/support/Parser.java, * gnu/javax/swing/text/html/parser/support/low/ReaderTokenizer.java, * gnu/javax/swing/text/html/parser/support/textPreProcessor.java, * gnu/javax/swing/tree/GnuPath.java, * gnu/test/Fail.java, * gnu/test/Pass.java, * gnu/test/Test.java, * gnu/test/Unsupported.java, * gnu/xml/aelfred2/JAXPFactory.java, * gnu/xml/aelfred2/SAXDriver.java, * gnu/xml/aelfred2/XmlParser.java, * gnu/xml/aelfred2/XmlReader.java, * gnu/xml/dom/Consumer.java, * gnu/xml/dom/DTDAttributeTypeInfo.java, * gnu/xml/dom/DTDElementTypeInfo.java, * gnu/xml/dom/DomAttr.java, * gnu/xml/dom/DomCDATASection.java, * gnu/xml/dom/DomCharacterData.java, * gnu/xml/dom/DomComment.java, * gnu/xml/dom/DomDOMException.java, * gnu/xml/dom/DomDoctype.java, * gnu/xml/dom/DomDocument.java, * gnu/xml/dom/DomDocumentBuilder.java, * gnu/xml/dom/DomDocumentBuilderFactory.java, * gnu/xml/dom/DomDocumentConfiguration.java, * gnu/xml/dom/DomDocumentFragment.java, * gnu/xml/dom/DomElement.java, * gnu/xml/dom/DomEntity.java, * gnu/xml/dom/DomEntityReference.java, * gnu/xml/dom/DomEvent.java, * gnu/xml/dom/DomExtern.java, * gnu/xml/dom/DomImpl.java, * gnu/xml/dom/DomIterator.java, * gnu/xml/dom/DomNSResolverContext.java, * gnu/xml/dom/DomNamedNodeMap.java, * gnu/xml/dom/DomNode.java, * gnu/xml/dom/DomNodeIterator.java, * gnu/xml/dom/DomNotation.java, * gnu/xml/dom/DomNsNode.java, * gnu/xml/dom/DomProcessingInstruction.java, * gnu/xml/dom/DomText.java, * gnu/xml/dom/DomXPathExpression.java, * gnu/xml/dom/DomXPathNSResolver.java, * gnu/xml/dom/DomXPathResult.java, * gnu/xml/dom/ImplementationList.java, * gnu/xml/dom/ImplementationSource.java, * gnu/xml/dom/JAXPFactory.java, * gnu/xml/dom/html2/DomHTMLAnchorElement.java, * gnu/xml/dom/html2/DomHTMLAppletElement.java, * gnu/xml/dom/html2/DomHTMLAreaElement.java, * gnu/xml/dom/html2/DomHTMLBRElement.java, * gnu/xml/dom/html2/DomHTMLBaseElement.java, * gnu/xml/dom/html2/DomHTMLBaseFontElement.java, * gnu/xml/dom/html2/DomHTMLBodyElement.java, * gnu/xml/dom/html2/DomHTMLButtonElement.java, * gnu/xml/dom/html2/DomHTMLCollection.java, * gnu/xml/dom/html2/DomHTMLDListElement.java, * gnu/xml/dom/html2/DomHTMLDirectoryElement.java, * gnu/xml/dom/html2/DomHTMLDivElement.java, * gnu/xml/dom/html2/DomHTMLDocument.java, * gnu/xml/dom/html2/DomHTMLElement.java, * gnu/xml/dom/html2/DomHTMLEmbedElement.java, * gnu/xml/dom/html2/DomHTMLFieldSetElement.java, * gnu/xml/dom/html2/DomHTMLFontElement.java, * gnu/xml/dom/html2/DomHTMLFormElement.java, * gnu/xml/dom/html2/DomHTMLFrameElement.java, * gnu/xml/dom/html2/DomHTMLFrameSetElement.java, * gnu/xml/dom/html2/DomHTMLHRElement.java, * gnu/xml/dom/html2/DomHTMLHeadElement.java, * gnu/xml/dom/html2/DomHTMLHeadingElement.java, * gnu/xml/dom/html2/DomHTMLHtmlElement.java, * gnu/xml/dom/html2/DomHTMLIFrameElement.java, * gnu/xml/dom/html2/DomHTMLImageElement.java, * gnu/xml/dom/html2/DomHTMLImpl.java, * gnu/xml/dom/html2/DomHTMLInputElement.java, * gnu/xml/dom/html2/DomHTMLIsIndexElement.java, * gnu/xml/dom/html2/DomHTMLLIElement.java, * gnu/xml/dom/html2/DomHTMLLabelElement.java, * gnu/xml/dom/html2/DomHTMLLegendElement.java, * gnu/xml/dom/html2/DomHTMLLinkElement.java, * gnu/xml/dom/html2/DomHTMLMapElement.java, * gnu/xml/dom/html2/DomHTMLMenuElement.java, * gnu/xml/dom/html2/DomHTMLMetaElement.java, * gnu/xml/dom/html2/DomHTMLModElement.java, * gnu/xml/dom/html2/DomHTMLOListElement.java, * gnu/xml/dom/html2/DomHTMLObjectElement.java, * gnu/xml/dom/html2/DomHTMLOptGroupElement.java, * gnu/xml/dom/html2/DomHTMLOptionElement.java, * gnu/xml/dom/html2/DomHTMLParagraphElement.java, * gnu/xml/dom/html2/DomHTMLParamElement.java, * gnu/xml/dom/html2/DomHTMLParser.java, * gnu/xml/dom/html2/DomHTMLPreElement.java, * gnu/xml/dom/html2/DomHTMLQuoteElement.java, * gnu/xml/dom/html2/DomHTMLScriptElement.java, * gnu/xml/dom/html2/DomHTMLSelectElement.java, * gnu/xml/dom/html2/DomHTMLStyleElement.java, * gnu/xml/dom/html2/DomHTMLTableCaptionElement.java, * gnu/xml/dom/html2/DomHTMLTableCellElement.java, * gnu/xml/dom/html2/DomHTMLTableColElement.java, * gnu/xml/dom/html2/DomHTMLTableElement.java, * gnu/xml/dom/html2/DomHTMLTableRowElement.java, * gnu/xml/dom/html2/DomHTMLTableSectionElement.java, * gnu/xml/dom/html2/DomHTMLTextAreaElement.java, * gnu/xml/dom/html2/DomHTMLTitleElement.java, * gnu/xml/dom/html2/DomHTMLUListElement.java, * gnu/xml/dom/ls/DomLSException.java, * gnu/xml/dom/ls/DomLSInput.java, * gnu/xml/dom/ls/DomLSOutput.java, * gnu/xml/dom/ls/DomLSParser.java, * gnu/xml/dom/ls/DomLSSerializer.java, * gnu/xml/dom/ls/FilteredSAXEventSink.java, * gnu/xml/dom/ls/ReaderInputStream.java, * gnu/xml/dom/ls/SAXEventSink.java, * gnu/xml/dom/ls/WriterOutputStream.java, * gnu/xml/libxmlj/dom/GnomeAttr.java, * gnu/xml/libxmlj/dom/GnomeCDATASection.java, * gnu/xml/libxmlj/dom/GnomeCharacterData.java, * gnu/xml/libxmlj/dom/GnomeComment.java, * gnu/xml/libxmlj/dom/GnomeDOMException.java, * gnu/xml/libxmlj/dom/GnomeDOMStringList.java, * gnu/xml/libxmlj/dom/GnomeDocument.java, * gnu/xml/libxmlj/dom/GnomeDocumentBuilder.java, * gnu/xml/libxmlj/dom/GnomeDocumentBuilderFactory.java, * gnu/xml/libxmlj/dom/GnomeDocumentFragment.java, * gnu/xml/libxmlj/dom/GnomeDocumentType.java, * gnu/xml/libxmlj/dom/GnomeElement.java, * gnu/xml/libxmlj/dom/GnomeEntity.java, * gnu/xml/libxmlj/dom/GnomeEntityReference.java, * gnu/xml/libxmlj/dom/GnomeNamedNodeMap.java, * gnu/xml/libxmlj/dom/GnomeNode.java, * gnu/xml/libxmlj/dom/GnomeNodeList.java, * gnu/xml/libxmlj/dom/GnomeNotation.java, * gnu/xml/libxmlj/dom/GnomeProcessingInstruction.java, * gnu/xml/libxmlj/dom/GnomeText.java, * gnu/xml/libxmlj/dom/GnomeTypeInfo.java, * gnu/xml/libxmlj/dom/GnomeXPathExpression.java, * gnu/xml/libxmlj/dom/GnomeXPathNSResolver.java, * gnu/xml/libxmlj/dom/GnomeXPathNodeList.java, * gnu/xml/libxmlj/dom/GnomeXPathResult.java, * gnu/xml/libxmlj/sax/GnomeLocator.java, * gnu/xml/libxmlj/sax/GnomeSAXParser.java, * gnu/xml/libxmlj/sax/GnomeSAXParserFactory.java, * gnu/xml/libxmlj/sax/GnomeXMLReader.java, * gnu/xml/libxmlj/sax/Namespaces.java, * gnu/xml/libxmlj/sax/StringArrayAttributes.java, * gnu/xml/libxmlj/sax/XMLName.java, * gnu/xml/libxmlj/transform/ErrorListenerErrorHandler.java, * gnu/xml/libxmlj/transform/GnomeTransformer.java, * gnu/xml/libxmlj/transform/GnomeTransformerFactory.java, * gnu/xml/libxmlj/transform/URIResolverEntityResolver.java, * gnu/xml/libxmlj/util/EmptyNodeList.java, * gnu/xml/libxmlj/util/NamedInputStream.java, * gnu/xml/libxmlj/util/StandaloneDocumentType.java, * gnu/xml/libxmlj/util/StandaloneLocator.java, * gnu/xml/libxmlj/util/XMLJ.java, * gnu/xml/pipeline/CallFilter.java, * gnu/xml/pipeline/DomConsumer.java, * gnu/xml/pipeline/EventConsumer.java, * gnu/xml/pipeline/EventFilter.java, * gnu/xml/pipeline/LinkFilter.java, * gnu/xml/pipeline/NSFilter.java, * gnu/xml/pipeline/PipelineFactory.java, * gnu/xml/pipeline/TeeConsumer.java, * gnu/xml/pipeline/TextConsumer.java, * gnu/xml/pipeline/ValidationConsumer.java, * gnu/xml/pipeline/WellFormednessFilter.java, * gnu/xml/pipeline/XIncludeFilter.java, * gnu/xml/pipeline/XsltFilter.java, * gnu/xml/stream/AttributeImpl.java, * gnu/xml/stream/BufferedReader.java, * gnu/xml/stream/CRLFReader.java, * gnu/xml/stream/CharactersImpl.java, * gnu/xml/stream/CommentImpl.java, * gnu/xml/stream/DTDImpl.java, * gnu/xml/stream/EndDocumentImpl.java, * gnu/xml/stream/EndElementImpl.java, * gnu/xml/stream/EntityDeclarationImpl.java, * gnu/xml/stream/EntityReferenceImpl.java, * gnu/xml/stream/FilteredEventReader.java, * gnu/xml/stream/FilteredStreamReader.java, * gnu/xml/stream/NamespaceImpl.java, * gnu/xml/stream/NotationDeclarationImpl.java, * gnu/xml/stream/ProcessingInstructionImpl.java, * gnu/xml/stream/SAXParser.java, * gnu/xml/stream/SAXParserFactory.java, * gnu/xml/stream/StartDocumentImpl.java, * gnu/xml/stream/StartElementImpl.java, * gnu/xml/stream/UnicodeReader.java, * gnu/xml/stream/XIncludeFilter.java, * gnu/xml/stream/XMLEventAllocatorImpl.java, * gnu/xml/stream/XMLEventFactoryImpl.java, * gnu/xml/stream/XMLEventImpl.java, * gnu/xml/stream/XMLEventReaderImpl.java, * gnu/xml/stream/XMLEventWriterImpl.java, * gnu/xml/stream/XMLInputFactoryImpl.java, * gnu/xml/stream/XMLOutputFactoryImpl.java, * gnu/xml/stream/XMLParser.java, * gnu/xml/stream/XMLStreamWriterImpl.java, * gnu/xml/transform/AbstractNumberNode.java, * gnu/xml/transform/ApplyImportsNode.java, * gnu/xml/transform/ApplyTemplatesNode.java, * gnu/xml/transform/AttributeNode.java, * gnu/xml/transform/AttributeSet.java, * gnu/xml/transform/Bindings.java, * gnu/xml/transform/CallTemplateNode.java, * gnu/xml/transform/ChooseNode.java, * gnu/xml/transform/CommentNode.java, * gnu/xml/transform/CopyNode.java, * gnu/xml/transform/CopyOfNode.java, * gnu/xml/transform/CurrentFunction.java, * gnu/xml/transform/DOMSourceLocator.java, * gnu/xml/transform/DocumentFunction.java, * gnu/xml/transform/ElementAvailableFunction.java, * gnu/xml/transform/ElementNode.java, * gnu/xml/transform/ErrorListenerErrorHandler.java, * gnu/xml/transform/ForEachNode.java, * gnu/xml/transform/FormatNumberFunction.java, * gnu/xml/transform/FunctionAvailableFunction.java, * gnu/xml/transform/GenerateIdFunction.java, * gnu/xml/transform/IfNode.java, * gnu/xml/transform/Key.java, * gnu/xml/transform/KeyFunction.java, * gnu/xml/transform/LiteralNode.java, * gnu/xml/transform/MessageNode.java, * gnu/xml/transform/NamespaceProxy.java, * gnu/xml/transform/NodeNumberNode.java, * gnu/xml/transform/NumberNode.java, * gnu/xml/transform/OtherwiseNode.java, * gnu/xml/transform/ParameterNode.java, * gnu/xml/transform/ProcessingInstructionNode.java, * gnu/xml/transform/SAXSerializer.java, * gnu/xml/transform/SAXTemplatesHandler.java, * gnu/xml/transform/SAXTransformerHandler.java, * gnu/xml/transform/SortKey.java, * gnu/xml/transform/StreamSerializer.java, * gnu/xml/transform/StrippingInstruction.java, * gnu/xml/transform/Stylesheet.java, * gnu/xml/transform/SystemPropertyFunction.java, * gnu/xml/transform/Template.java, * gnu/xml/transform/TemplateNode.java, * gnu/xml/transform/TemplatesImpl.java, * gnu/xml/transform/TextNode.java, * gnu/xml/transform/TransformerFactoryImpl.java, * gnu/xml/transform/TransformerImpl.java, * gnu/xml/transform/TransformerOutputProperties.java, * gnu/xml/transform/URIResolverEntityResolver.java, * gnu/xml/transform/UnparsedEntityUriFunction.java, * gnu/xml/transform/ValueOfNode.java, * gnu/xml/transform/WhenNode.java, * gnu/xml/transform/WithParam.java, * gnu/xml/transform/XSLComparator.java, * gnu/xml/transform/XSLURIResolver.java, * gnu/xml/util/DoParse.java, * gnu/xml/util/DomParser.java, * gnu/xml/util/Resolver.java, * gnu/xml/util/SAXNullTransformerFactory.java, * gnu/xml/util/XCat.java, * gnu/xml/util/XHTMLWriter.java, * gnu/xml/util/XMLWriter.java, * gnu/xml/validation/datatype/Annotation.java, * gnu/xml/validation/datatype/AnySimpleType.java, * gnu/xml/validation/datatype/AnyType.java, * gnu/xml/validation/datatype/AnyURIType.java, * gnu/xml/validation/datatype/AtomicSimpleType.java, * gnu/xml/validation/datatype/Base64BinaryType.java, * gnu/xml/validation/datatype/BooleanType.java, * gnu/xml/validation/datatype/ByteType.java, * gnu/xml/validation/datatype/DateTimeType.java, * gnu/xml/validation/datatype/DateType.java, * gnu/xml/validation/datatype/DecimalType.java, * gnu/xml/validation/datatype/DoubleType.java, * gnu/xml/validation/datatype/DurationType.java, * gnu/xml/validation/datatype/EntitiesType.java, * gnu/xml/validation/datatype/EntityType.java, * gnu/xml/validation/datatype/EnumerationFacet.java, * gnu/xml/validation/datatype/Facet.java, * gnu/xml/validation/datatype/FloatType.java, * gnu/xml/validation/datatype/FractionDigitsFacet.java, * gnu/xml/validation/datatype/GDayType.java, * gnu/xml/validation/datatype/GMonthDayType.java, * gnu/xml/validation/datatype/GMonthType.java, * gnu/xml/validation/datatype/GYearMonthType.java, * gnu/xml/validation/datatype/GYearType.java, * gnu/xml/validation/datatype/HexBinaryType.java, * gnu/xml/validation/datatype/IDRefType.java, * gnu/xml/validation/datatype/IDRefsType.java, * gnu/xml/validation/datatype/IDType.java, * gnu/xml/validation/datatype/IntType.java, * gnu/xml/validation/datatype/IntegerType.java, * gnu/xml/validation/datatype/LanguageType.java, * gnu/xml/validation/datatype/LengthFacet.java, * gnu/xml/validation/datatype/ListSimpleType.java, * gnu/xml/validation/datatype/LongType.java, * gnu/xml/validation/datatype/MaxExclusiveFacet.java, * gnu/xml/validation/datatype/MaxInclusiveFacet.java, * gnu/xml/validation/datatype/MaxLengthFacet.java, * gnu/xml/validation/datatype/MinExclusiveFacet.java, * gnu/xml/validation/datatype/MinInclusiveFacet.java, * gnu/xml/validation/datatype/MinLengthFacet.java, * gnu/xml/validation/datatype/NCNameType.java, * gnu/xml/validation/datatype/NMTokenType.java, * gnu/xml/validation/datatype/NMTokensType.java, * gnu/xml/validation/datatype/NameType.java, * gnu/xml/validation/datatype/NegativeIntegerType.java, * gnu/xml/validation/datatype/NonNegativeIntegerType.java, * gnu/xml/validation/datatype/NonPositiveIntegerType.java, * gnu/xml/validation/datatype/NormalizedStringType.java, * gnu/xml/validation/datatype/NotationType.java, * gnu/xml/validation/datatype/PatternFacet.java, * gnu/xml/validation/datatype/PositiveIntegerType.java, * gnu/xml/validation/datatype/QNameType.java, * gnu/xml/validation/datatype/ShortType.java, * gnu/xml/validation/datatype/SimpleType.java, * gnu/xml/validation/datatype/StringType.java, * gnu/xml/validation/datatype/TimeType.java, * gnu/xml/validation/datatype/TokenType.java, * gnu/xml/validation/datatype/TotalDigitsFacet.java, * gnu/xml/validation/datatype/Type.java, * gnu/xml/validation/datatype/TypeBuilder.java, * gnu/xml/validation/datatype/TypeLibrary.java, * gnu/xml/validation/datatype/TypeLibraryFactory.java, * gnu/xml/validation/datatype/UnionSimpleType.java, * gnu/xml/validation/datatype/UnsignedByteType.java, * gnu/xml/validation/datatype/UnsignedIntType.java, * gnu/xml/validation/datatype/UnsignedLongType.java, * gnu/xml/validation/datatype/UnsignedShortType.java, * gnu/xml/validation/datatype/WhiteSpaceFacet.java, * gnu/xml/validation/relaxng/AnyNameNameClass.java, * gnu/xml/validation/relaxng/AttributePattern.java, * gnu/xml/validation/relaxng/ChoiceNameClass.java, * gnu/xml/validation/relaxng/ChoicePattern.java, * gnu/xml/validation/relaxng/DataPattern.java, * gnu/xml/validation/relaxng/Define.java, * gnu/xml/validation/relaxng/ElementPattern.java, * gnu/xml/validation/relaxng/EmptyPattern.java, * gnu/xml/validation/relaxng/FullSyntaxBuilder.java, * gnu/xml/validation/relaxng/Grammar.java, * gnu/xml/validation/relaxng/GrammarException.java, * gnu/xml/validation/relaxng/GrammarValidator.java, * gnu/xml/validation/relaxng/GroupPattern.java, * gnu/xml/validation/relaxng/InterleavePattern.java, * gnu/xml/validation/relaxng/ListPattern.java, * gnu/xml/validation/relaxng/NSNameNameClass.java, * gnu/xml/validation/relaxng/NameClass.java, * gnu/xml/validation/relaxng/NameNameClass.java, * gnu/xml/validation/relaxng/NotAllowedPattern.java, * gnu/xml/validation/relaxng/OneOrMorePattern.java, * gnu/xml/validation/relaxng/Param.java, * gnu/xml/validation/relaxng/Pattern.java, * gnu/xml/validation/relaxng/RELAXNGSchemaFactory.java, * gnu/xml/validation/relaxng/RefPattern.java, * gnu/xml/validation/relaxng/TextPattern.java, * gnu/xml/validation/relaxng/ValuePattern.java, * gnu/xml/validation/xmlschema/AnyAttribute.java, * gnu/xml/validation/xmlschema/AttributeDeclaration.java, * gnu/xml/validation/xmlschema/AttributeUse.java, * gnu/xml/validation/xmlschema/ComplexType.java, * gnu/xml/validation/xmlschema/ElementDeclaration.java, * gnu/xml/validation/xmlschema/Particle.java, * gnu/xml/validation/xmlschema/ValidationException.java, * gnu/xml/validation/xmlschema/XMLSchema.java, * gnu/xml/validation/xmlschema/XMLSchemaAttributeTypeInfo.java, * gnu/xml/validation/xmlschema/XMLSchemaBuilder.java, * gnu/xml/validation/xmlschema/XMLSchemaElementTypeInfo.java, * gnu/xml/validation/xmlschema/XMLSchemaSchemaFactory.java, * gnu/xml/validation/xmlschema/XMLSchemaTypeInfo.java, * gnu/xml/validation/xmlschema/XMLSchemaTypeInfoProvider.java, * gnu/xml/validation/xmlschema/XMLSchemaValidator.java, * gnu/xml/validation/xmlschema/XMLSchemaValidatorHandler.java, * gnu/xml/xpath/AndExpr.java, * gnu/xml/xpath/ArithmeticExpr.java, * gnu/xml/xpath/BooleanFunction.java, * gnu/xml/xpath/CeilingFunction.java, * gnu/xml/xpath/ConcatFunction.java, * gnu/xml/xpath/Constant.java, * gnu/xml/xpath/ContainsFunction.java, * gnu/xml/xpath/CountFunction.java, * gnu/xml/xpath/DocumentOrderComparator.java, * gnu/xml/xpath/EqualityExpr.java, * gnu/xml/xpath/Expr.java, * gnu/xml/xpath/FalseFunction.java, * gnu/xml/xpath/FloorFunction.java, * gnu/xml/xpath/Function.java, * gnu/xml/xpath/FunctionCall.java, * gnu/xml/xpath/IdFunction.java, * gnu/xml/xpath/LangFunction.java, * gnu/xml/xpath/LastFunction.java, * gnu/xml/xpath/LocalNameFunction.java, * gnu/xml/xpath/NameFunction.java, * gnu/xml/xpath/NameTest.java, * gnu/xml/xpath/NamespaceTest.java, * gnu/xml/xpath/NamespaceUriFunction.java, * gnu/xml/xpath/NegativeExpr.java, * gnu/xml/xpath/NodeTypeTest.java, * gnu/xml/xpath/NormalizeSpaceFunction.java, * gnu/xml/xpath/NotFunction.java, * gnu/xml/xpath/NumberFunction.java, * gnu/xml/xpath/OrExpr.java, * gnu/xml/xpath/ParenthesizedExpr.java, * gnu/xml/xpath/Path.java, * gnu/xml/xpath/Pattern.java, * gnu/xml/xpath/PositionFunction.java, * gnu/xml/xpath/Predicate.java, * gnu/xml/xpath/RelationalExpr.java, * gnu/xml/xpath/Root.java, * gnu/xml/xpath/RoundFunction.java, * gnu/xml/xpath/Selector.java, * gnu/xml/xpath/StartsWithFunction.java, * gnu/xml/xpath/Steps.java, * gnu/xml/xpath/StringFunction.java, * gnu/xml/xpath/StringLengthFunction.java, * gnu/xml/xpath/SubstringAfterFunction.java, * gnu/xml/xpath/SubstringBeforeFunction.java, * gnu/xml/xpath/SubstringFunction.java, * gnu/xml/xpath/SumFunction.java, * gnu/xml/xpath/Test.java, * gnu/xml/xpath/TranslateFunction.java, * gnu/xml/xpath/TrueFunction.java, * gnu/xml/xpath/UnionExpr.java, * gnu/xml/xpath/VariableReference.java, * gnu/xml/xpath/XPathFactoryImpl.java, * gnu/xml/xpath/XPathImpl.java, * gnu/xml/xpath/XPathParser.java, * gnu/xml/xpath/XPathTokenizer.java, * java/applet/Applet.java, * java/awt/AWTEvent.java, * java/awt/AWTEventMulticaster.java, * java/awt/AWTKeyStroke.java, * java/awt/AlphaComposite.java, * java/awt/BasicStroke.java, * java/awt/BorderLayout.java, * java/awt/BufferCapabilities.java, * java/awt/Button.java, * java/awt/Canvas.java, * java/awt/CardLayout.java, * java/awt/Checkbox.java, * java/awt/CheckboxGroup.java, * java/awt/CheckboxMenuItem.java, * java/awt/Choice.java, * java/awt/Color.java, * java/awt/ColorPaintContext.java, * java/awt/Component.java, * java/awt/Container.java, * java/awt/ContainerOrderFocusTraversalPolicy.java, * java/awt/Cursor.java, * java/awt/DefaultFocusTraversalPolicy.java, * java/awt/DefaultKeyboardFocusManager.java, * java/awt/Desktop.java, * java/awt/Dialog.java, * java/awt/DisplayMode.java, * java/awt/Event.java, * java/awt/EventDispatchThread.java, * java/awt/EventQueue.java, * java/awt/FileDialog.java, * java/awt/FlowLayout.java, * java/awt/FocusTraversalPolicy.java, * java/awt/Font.java, * java/awt/FontMetrics.java, * java/awt/Frame.java, * java/awt/GradientPaint.java, * java/awt/Graphics.java, * java/awt/Graphics2D.java, * java/awt/GraphicsConfiguration.java, * java/awt/GraphicsDevice.java, * java/awt/GridBagConstraints.java, * java/awt/GridBagLayout.java, * java/awt/GridLayout.java, * java/awt/Image.java, * java/awt/Insets.java, * java/awt/JobAttributes.java, * java/awt/KeyboardFocusManager.java, * java/awt/Label.java, * java/awt/LightweightDispatcher.java, * java/awt/List.java, * java/awt/MediaTracker.java, * java/awt/Menu.java, * java/awt/MenuBar.java, * java/awt/MenuComponent.java, * java/awt/MenuItem.java, * java/awt/MenuShortcut.java, * java/awt/MouseInfo.java, * java/awt/PageAttributes.java, * java/awt/Point.java, * java/awt/PointerInfo.java, * java/awt/Polygon.java, * java/awt/PopupMenu.java, * java/awt/Rectangle.java, * java/awt/RenderingHints.java, * java/awt/Robot.java, * java/awt/ScrollPane.java, * java/awt/ScrollPaneAdjustable.java, * java/awt/Scrollbar.java, * java/awt/Shape.java, * java/awt/SystemColor.java, * java/awt/TextArea.java, * java/awt/TextComponent.java, * java/awt/TextField.java, * java/awt/TexturePaint.java, * java/awt/Toolkit.java, * java/awt/Window.java, * java/awt/color/ICC_ColorSpace.java, * java/awt/color/ICC_Profile.java, * java/awt/color/ICC_ProfileGray.java, * java/awt/color/ICC_ProfileRGB.java, * java/awt/datatransfer/Clipboard.java, * java/awt/datatransfer/ClipboardOwner.java, * java/awt/datatransfer/DataFlavor.java, * java/awt/datatransfer/FlavorEvent.java, * java/awt/datatransfer/FlavorListener.java, * java/awt/datatransfer/MimeType.java, * java/awt/datatransfer/StringSelection.java, * java/awt/datatransfer/SystemFlavorMap.java, * java/awt/datatransfer/Transferable.java, * java/awt/datatransfer/UnsupportedFlavorException.java, * java/awt/dnd/Autoscroll.java, * java/awt/dnd/DnDEventMulticaster.java, * java/awt/dnd/DragGestureEvent.java, * java/awt/dnd/DragGestureRecognizer.java, * java/awt/dnd/DragSource.java, * java/awt/dnd/DragSourceContext.java, * java/awt/dnd/DragSourceDropEvent.java, * java/awt/dnd/DragSourceEvent.java, * java/awt/dnd/DropTarget.java, * java/awt/dnd/DropTargetContext.java, * java/awt/dnd/DropTargetDragEvent.java, * java/awt/dnd/DropTargetDropEvent.java, * java/awt/dnd/DropTargetEvent.java, * java/awt/dnd/MouseDragGestureRecognizer.java, * java/awt/dnd/peer/DropTargetContextPeer.java, * java/awt/event/AWTEventListener.java, * java/awt/event/ActionEvent.java, * java/awt/event/ComponentAdapter.java, * java/awt/event/ComponentEvent.java, * java/awt/event/InputEvent.java, * java/awt/event/InputMethodEvent.java, * java/awt/event/InvocationEvent.java, * java/awt/event/KeyEvent.java, * java/awt/event/MouseEvent.java, * java/awt/event/MouseListener.java, * java/awt/event/MouseWheelEvent.java, * java/awt/event/WindowEvent.java, * java/awt/font/FontRenderContext.java, * java/awt/font/GlyphJustificationInfo.java, * java/awt/font/GlyphMetrics.java, * java/awt/font/GlyphVector.java, * java/awt/font/GraphicAttribute.java, * java/awt/font/ImageGraphicAttribute.java, * java/awt/font/LineBreakMeasurer.java, * java/awt/font/LineMetrics.java, * java/awt/font/MultipleMaster.java, * java/awt/font/OpenType.java, * java/awt/font/ShapeGraphicAttribute.java, * java/awt/font/TextAttribute.java, * java/awt/font/TextHitInfo.java, * java/awt/font/TextLayout.java, * java/awt/font/TextMeasurer.java, * java/awt/font/TransformAttribute.java, * java/awt/geom/AffineTransform.java, * java/awt/geom/Arc2D.java, * java/awt/geom/Area.java, * java/awt/geom/CubicCurve2D.java, * java/awt/geom/Ellipse2D.java, * java/awt/geom/FlatteningPathIterator.java, * java/awt/geom/GeneralPath.java, * java/awt/geom/Line2D.java, * java/awt/geom/QuadCurve2D.java, * java/awt/geom/RectangularShape.java, * java/awt/geom/RoundRectangle2D.java, * java/awt/im/InputContext.java, * java/awt/im/spi/InputMethodDescriptor.java, * java/awt/image/AffineTransformOp.java, * java/awt/image/AreaAveragingScaleFilter.java, * java/awt/image/BandCombineOp.java, * java/awt/image/BandedSampleModel.java, * java/awt/image/BufferedImage.java, * java/awt/image/BufferedImageFilter.java, * java/awt/image/BufferedImageOp.java, * java/awt/image/ByteLookupTable.java, * java/awt/image/ColorConvertOp.java, * java/awt/image/ColorModel.java, * java/awt/image/ComponentColorModel.java, * java/awt/image/ComponentSampleModel.java, * java/awt/image/ConvolveOp.java, * java/awt/image/CropImageFilter.java, * java/awt/image/DataBuffer.java, * java/awt/image/DataBufferByte.java, * java/awt/image/DataBufferDouble.java, * java/awt/image/DataBufferFloat.java, * java/awt/image/DataBufferInt.java, * java/awt/image/DataBufferShort.java, * java/awt/image/DataBufferUShort.java, * java/awt/image/DirectColorModel.java, * java/awt/image/FilteredImageSource.java, * java/awt/image/ImageConsumer.java, * java/awt/image/ImageFilter.java, * java/awt/image/ImageObserver.java, * java/awt/image/ImageProducer.java, * java/awt/image/IndexColorModel.java, * java/awt/image/Kernel.java, * java/awt/image/LookupOp.java, * java/awt/image/LookupTable.java, * java/awt/image/MemoryImageSource.java, * java/awt/image/MultiPixelPackedSampleModel.java, * java/awt/image/PackedColorModel.java, * java/awt/image/PixelGrabber.java, * java/awt/image/PixelInterleavedSampleModel.java, * java/awt/image/RGBImageFilter.java, * java/awt/image/Raster.java, * java/awt/image/RasterOp.java, * java/awt/image/RenderedImage.java, * java/awt/image/ReplicateScaleFilter.java, * java/awt/image/RescaleOp.java, * java/awt/image/SampleModel.java, * java/awt/image/ShortLookupTable.java, * java/awt/image/SinglePixelPackedSampleModel.java, * java/awt/image/TileObserver.java, * java/awt/image/WritableRaster.java, * java/awt/image/WritableRenderedImage.java, * java/awt/image/renderable/ContextualRenderedImageFactory.java, * java/awt/image/renderable/ParameterBlock.java, * java/awt/image/renderable/RenderContext.java, * java/awt/image/renderable/RenderableImage.java, * java/awt/image/renderable/RenderableImageOp.java, * java/awt/image/renderable/RenderableImageProducer.java, * java/awt/image/renderable/RenderedImageFactory.java, * java/awt/peer/ButtonPeer.java, * java/awt/peer/CanvasPeer.java, * java/awt/peer/CheckboxMenuItemPeer.java, * java/awt/peer/CheckboxPeer.java, * java/awt/peer/ChoicePeer.java, * java/awt/peer/ComponentPeer.java, * java/awt/peer/ContainerPeer.java, * java/awt/peer/DesktopPeer.java, * java/awt/peer/DialogPeer.java, * java/awt/peer/FileDialogPeer.java, * java/awt/peer/FontPeer.java, * java/awt/peer/FramePeer.java, * java/awt/peer/LabelPeer.java, * java/awt/peer/LightweightPeer.java, * java/awt/peer/ListPeer.java, * java/awt/peer/MenuBarPeer.java, * java/awt/peer/MenuComponentPeer.java, * java/awt/peer/MenuItemPeer.java, * java/awt/peer/MenuPeer.java, * java/awt/peer/MouseInfoPeer.java, * java/awt/peer/PanelPeer.java, * java/awt/peer/PopupMenuPeer.java, * java/awt/peer/RobotPeer.java, * java/awt/peer/ScrollPanePeer.java, * java/awt/peer/ScrollbarPeer.java, * java/awt/peer/TextComponentPeer.java, * java/awt/peer/TextFieldPeer.java, * java/awt/peer/WindowPeer.java, * java/awt/print/Book.java, * java/awt/print/PageFormat.java, * java/awt/print/Pageable.java, * java/awt/print/Paper.java, * java/awt/print/PrinterGraphics.java, * java/awt/print/PrinterIOException.java, * java/awt/print/PrinterJob.java, * java/beans/AppletInitializer.java, * java/beans/BeanDescriptor.java, * java/beans/BeanInfo.java, * java/beans/Beans.java, * java/beans/Customizer.java, * java/beans/DefaultPersistenceDelegate.java, * java/beans/DesignMode.java, * java/beans/Encoder.java, * java/beans/EventHandler.java, * java/beans/EventSetDescriptor.java, * java/beans/Expression.java, * java/beans/FeatureDescriptor.java, * java/beans/IndexedPropertyChangeEvent.java, * java/beans/IndexedPropertyDescriptor.java, * java/beans/Introspector.java, * java/beans/MethodDescriptor.java, * java/beans/ParameterDescriptor.java, * java/beans/PersistenceDelegate.java, * java/beans/PropertyChangeSupport.java, * java/beans/PropertyDescriptor.java, * java/beans/PropertyEditor.java, * java/beans/PropertyEditorManager.java, * java/beans/SimpleBeanInfo.java, * java/beans/Statement.java, * java/beans/VetoableChangeSupport.java, * java/beans/Visibility.java, * java/beans/XMLDecoder.java, * java/beans/XMLEncoder.java, * java/beans/beancontext/BeanContext.java, * java/beans/beancontext/BeanContextChild.java, * java/beans/beancontext/BeanContextChildComponentProxy.java, * java/beans/beancontext/BeanContextChildSupport.java, * java/beans/beancontext/BeanContextContainerProxy.java, * java/beans/beancontext/BeanContextEvent.java, * java/beans/beancontext/BeanContextMembershipEvent.java, * java/beans/beancontext/BeanContextMembershipListener.java, * java/beans/beancontext/BeanContextProxy.java, * java/beans/beancontext/BeanContextServiceAvailableEvent.java, * java/beans/beancontext/BeanContextServiceProvider.java, * java/beans/beancontext/BeanContextServiceProviderBeanInfo.java, * java/beans/beancontext/BeanContextServiceRevokedEvent.java, * java/beans/beancontext/BeanContextServiceRevokedListener.java, * java/beans/beancontext/BeanContextServices.java, * java/beans/beancontext/BeanContextServicesListener.java, * java/beans/beancontext/BeanContextServicesSupport.java, * java/beans/beancontext/BeanContextSupport.java, * java/io/BufferedInputStream.java, * java/io/BufferedOutputStream.java, * java/io/BufferedReader.java, * java/io/BufferedWriter.java, * java/io/ByteArrayInputStream.java, * java/io/ByteArrayOutputStream.java, * java/io/CharArrayReader.java, * java/io/CharArrayWriter.java, * java/io/DataInput.java, * java/io/DataInputStream.java, * java/io/DataOutput.java, * java/io/DataOutputStream.java, * java/io/DeleteFileHelper.java, * java/io/EOFException.java, * java/io/Externalizable.java, * java/io/File.java, * java/io/FileDescriptor.java, * java/io/FileFilter.java, * java/io/FileInputStream.java, * java/io/FileOutputStream.java, * java/io/FilePermission.java, * java/io/FileReader.java, * java/io/FileWriter.java, * java/io/FilenameFilter.java, * java/io/FilterInputStream.java, * java/io/FilterOutputStream.java, * java/io/FilterReader.java, * java/io/FilterWriter.java, * java/io/InputStream.java, * java/io/InputStreamReader.java, * java/io/InvalidClassException.java, * java/io/LineNumberInputStream.java, * java/io/LineNumberReader.java, * java/io/ObjectInput.java, * java/io/ObjectInputStream.java, * java/io/ObjectInputValidation.java, * java/io/ObjectOutput.java, * java/io/ObjectOutputStream.java, * java/io/ObjectStreamClass.java, * java/io/ObjectStreamConstants.java, * java/io/ObjectStreamField.java, * java/io/OutputStream.java, * java/io/OutputStreamWriter.java, * java/io/PipedInputStream.java, * java/io/PipedOutputStream.java, * java/io/PipedReader.java, * java/io/PipedWriter.java, * java/io/PrintStream.java, * java/io/PrintWriter.java, * java/io/PushbackInputStream.java, * java/io/PushbackReader.java, * java/io/RandomAccessFile.java, * java/io/Reader.java, * java/io/SequenceInputStream.java, * java/io/Serializable.java, * java/io/SerializablePermission.java, * java/io/StreamTokenizer.java, * java/io/StringBufferInputStream.java, * java/io/StringReader.java, * java/io/StringWriter.java, * java/io/UnsupportedEncodingException.java, * java/io/Writer.java, * java/lang/AbstractStringBuffer.java, * java/lang/Boolean.java, * java/lang/Character.java, * java/lang/Class.java, * java/lang/ClassLoader.java, * java/lang/Comparable.java, * java/lang/Double.java, * java/lang/Enum.java, * java/lang/EnumConstantNotPresentException.java, * java/lang/Float.java, * java/lang/IllegalArgumentException.java, * java/lang/IllegalStateException.java, * java/lang/IndexOutOfBoundsException.java, * java/lang/Integer.java, * java/lang/Long.java, * java/lang/Math.java, * java/lang/NoClassDefFoundError.java, * java/lang/Object.java, * java/lang/Package.java, * java/lang/ProcessBuilder.java, * java/lang/Runtime.java, * java/lang/SecurityException.java, * java/lang/SecurityManager.java, * java/lang/StackTraceElement.java, * java/lang/StrictMath.java, * java/lang/String.java, * java/lang/StringBuffer.java, * java/lang/StringBuilder.java, * java/lang/System.java, * java/lang/Thread.java, * java/lang/ThreadLocal.java, * java/lang/Throwable.java, * java/lang/TypeNotPresentException.java, * java/lang/UnsupportedOperationException.java, * java/lang/annotation/Annotation.java, * java/lang/annotation/AnnotationTypeMismatchException.java, * java/lang/annotation/IncompleteAnnotationException.java, * java/lang/instrument/ClassFileTransformer.java, * java/lang/instrument/Instrumentation.java, * java/lang/management/ClassLoadingMXBean.java, * java/lang/management/CompilationMXBean.java, * java/lang/management/GarbageCollectorMXBean.java, * java/lang/management/ManagementFactory.java, * java/lang/management/ManagementPermission.java, * java/lang/management/MemoryMXBean.java, * java/lang/management/MemoryManagerMXBean.java, * java/lang/management/MemoryNotificationInfo.java, * java/lang/management/MemoryPoolMXBean.java, * java/lang/management/MemoryType.java, * java/lang/management/MemoryUsage.java, * java/lang/management/MonitorInfo.java, * java/lang/management/OperatingSystemMXBean.java, * java/lang/management/RuntimeMXBean.java, * java/lang/management/ThreadInfo.java, * java/lang/management/ThreadMXBean.java, * java/lang/ref/PhantomReference.java, * java/lang/ref/Reference.java, * java/lang/ref/ReferenceQueue.java, * java/lang/ref/SoftReference.java, * java/lang/ref/WeakReference.java, * java/lang/reflect/AccessibleObject.java, * java/lang/reflect/AnnotatedElement.java, * java/lang/reflect/Array.java, * java/lang/reflect/Constructor.java, * java/lang/reflect/Field.java, * java/lang/reflect/GenericArrayType.java, * java/lang/reflect/GenericDeclaration.java, * java/lang/reflect/InvocationHandler.java, * java/lang/reflect/MalformedParameterizedTypeException.java, * java/lang/reflect/Method.java, * java/lang/reflect/Modifier.java, * java/lang/reflect/Proxy.java, * java/lang/reflect/Type.java, * java/lang/reflect/TypeVariable.java, * java/lang/reflect/WildcardType.java, * java/math/BigDecimal.java, * java/math/BigInteger.java, * java/math/MathContext.java, * java/math/RoundingMode.java, * java/net/ContentHandler.java, * java/net/DatagramSocket.java, * java/net/DatagramSocketImpl.java, * java/net/HttpURLConnection.java, * java/net/Inet4Address.java, * java/net/Inet6Address.java, * java/net/InetAddress.java, * java/net/InetSocketAddress.java, * java/net/MimeTypeMapper.java, * java/net/MulticastSocket.java, * java/net/NetworkInterface.java, * java/net/Proxy.java, * java/net/ProxySelector.java, * java/net/ResolverCache.java, * java/net/ServerSocket.java, * java/net/Socket.java, * java/net/SocketPermission.java, * java/net/URI.java, * java/net/URL.java, * java/net/URLClassLoader.java, * java/net/URLConnection.java, * java/net/URLDecoder.java, * java/net/URLEncoder.java, * java/net/URLStreamHandler.java, * java/nio/Buffer.java, * java/nio/BufferOverflowException.java, * java/nio/BufferUnderflowException.java, * java/nio/ByteBuffer.java, * java/nio/ByteBufferHelper.java, * java/nio/ByteBufferImpl.java, * java/nio/ByteOrder.java, * java/nio/CharBuffer.java, * java/nio/CharBufferImpl.java, * java/nio/CharSequenceBuffer.java, * java/nio/CharViewBufferImpl.java, * java/nio/DirectByteBufferImpl.java, * java/nio/DoubleBuffer.java, * java/nio/DoubleBufferImpl.java, * java/nio/DoubleViewBufferImpl.java, * java/nio/FloatBuffer.java, * java/nio/FloatBufferImpl.java, * java/nio/FloatViewBufferImpl.java, * java/nio/IntBuffer.java, * java/nio/IntBufferImpl.java, * java/nio/IntViewBufferImpl.java, * java/nio/InvalidMarkException.java, * java/nio/LongBuffer.java, * java/nio/LongBufferImpl.java, * java/nio/LongViewBufferImpl.java, * java/nio/MappedByteBuffer.java, * java/nio/MappedByteBufferImpl.java, * java/nio/ReadOnlyBufferException.java, * java/nio/ShortBuffer.java, * java/nio/ShortBufferImpl.java, * java/nio/ShortViewBufferImpl.java, * java/nio/channels/FileChannel.java, * java/nio/channels/SocketChannel.java, * java/nio/channels/spi/AbstractInterruptibleChannel.java, * java/nio/channels/spi/AbstractSelectableChannel.java, * java/nio/channels/spi/AbstractSelectionKey.java, * java/nio/channels/spi/AbstractSelector.java, * java/nio/channels/spi/SelectorProvider.java, * java/nio/charset/CharacterCodingException.java, * java/nio/charset/Charset.java, * java/nio/charset/CharsetDecoder.java, * java/nio/charset/CharsetEncoder.java, * java/nio/charset/CoderMalfunctionError.java, * java/nio/charset/CoderResult.java, * java/nio/charset/CodingErrorAction.java, * java/nio/charset/IllegalCharsetNameException.java, * java/nio/charset/MalformedInputException.java, * java/nio/charset/UnmappableCharacterException.java, * java/nio/charset/UnsupportedCharsetException.java, * java/rmi/AccessException.java, * java/rmi/AlreadyBoundException.java, * java/rmi/MarshalledObject.java, * java/rmi/Naming.java, * java/rmi/NoSuchObjectException.java, * java/rmi/NotBoundException.java, * java/rmi/RMISecurityException.java, * java/rmi/RMISecurityManager.java, * java/rmi/Remote.java, * java/rmi/RemoteException.java, * java/rmi/StubNotFoundException.java, * java/rmi/UnknownHostException.java, * java/rmi/activation/Activatable.java, * java/rmi/activation/ActivationDesc.java, * java/rmi/activation/ActivationGroup.java, * java/rmi/activation/ActivationGroupDesc.java, * java/rmi/activation/ActivationGroupID.java, * java/rmi/activation/ActivationID.java, * java/rmi/activation/ActivationInstantiator.java, * java/rmi/activation/ActivationMonitor.java, * java/rmi/activation/ActivationSystem.java, * java/rmi/activation/Activator.java, * java/rmi/activation/UnknownGroupException.java, * java/rmi/dgc/DGC.java, * java/rmi/dgc/Lease.java, * java/rmi/dgc/VMID.java, * java/rmi/registry/LocateRegistry.java, * java/rmi/registry/Registry.java, * java/rmi/registry/RegistryHandler.java, * java/rmi/server/LoaderHandler.java, * java/rmi/server/LogStream.java, * java/rmi/server/ObjID.java, * java/rmi/server/Operation.java, * java/rmi/server/RMIClassLoader.java, * java/rmi/server/RMIClientSocketFactory.java, * java/rmi/server/RMIFailureHandler.java, * java/rmi/server/RMIServerSocketFactory.java, * java/rmi/server/RMISocketFactory.java, * java/rmi/server/RemoteCall.java, * java/rmi/server/RemoteObject.java, * java/rmi/server/RemoteObjectInvocationHandler.java, * java/rmi/server/RemoteRef.java, * java/rmi/server/RemoteServer.java, * java/rmi/server/RemoteStub.java, * java/rmi/server/ServerRef.java, * java/rmi/server/Skeleton.java, * java/rmi/server/UID.java, * java/rmi/server/UnicastRemoteObject.java, * java/rmi/server/Unreferenced.java, * java/security/AccessControlContext.java, * java/security/AccessController.java, * java/security/AlgorithmParameterGenerator.java, * java/security/AlgorithmParameterGeneratorSpi.java, * java/security/AlgorithmParameters.java, * java/security/AlgorithmParametersSpi.java, * java/security/CodeSource.java, * java/security/DigestInputStream.java, * java/security/DigestOutputStream.java, * java/security/GeneralSecurityException.java, * java/security/Identity.java, * java/security/IdentityScope.java, * java/security/KeyFactory.java, * java/security/KeyFactorySpi.java, * java/security/KeyPairGenerator.java, * java/security/KeyPairGeneratorSpi.java, * java/security/KeyStore.java, * java/security/KeyStoreSpi.java, * java/security/MessageDigest.java, * java/security/MessageDigestSpi.java, * java/security/Permission.java, * java/security/Permissions.java, * java/security/Policy.java, * java/security/ProtectionDomain.java, * java/security/Provider.java, * java/security/ProviderException.java, * java/security/SecureClassLoader.java, * java/security/SecureRandom.java, * java/security/SecureRandomSpi.java, * java/security/Security.java, * java/security/Signature.java, * java/security/SignatureSpi.java, * java/security/SignedObject.java, * java/security/Signer.java, * java/security/acl/Acl.java, * java/security/acl/AclEntry.java, * java/security/acl/Group.java, * java/security/acl/Owner.java, * java/security/cert/CRL.java, * java/security/cert/CRLSelector.java, * java/security/cert/CertPathBuilder.java, * java/security/cert/CertPathBuilderResult.java, * java/security/cert/CertPathValidator.java, * java/security/cert/CertPathValidatorResult.java, * java/security/cert/CertPathValidatorSpi.java, * java/security/cert/CertSelector.java, * java/security/cert/CertStore.java, * java/security/cert/CertStoreParameters.java, * java/security/cert/CertStoreSpi.java, * java/security/cert/Certificate.java, * java/security/cert/CertificateFactory.java, * java/security/cert/CertificateFactorySpi.java, * java/security/cert/CollectionCertStoreParameters.java, * java/security/cert/LDAPCertStoreParameters.java, * java/security/cert/PKIXBuilderParameters.java, * java/security/cert/PKIXCertPathBuilderResult.java, * java/security/cert/PKIXCertPathChecker.java, * java/security/cert/PKIXCertPathValidatorResult.java, * java/security/cert/PKIXParameters.java, * java/security/cert/PolicyNode.java, * java/security/cert/PolicyQualifierInfo.java, * java/security/cert/X509CRL.java, * java/security/cert/X509CRLEntry.java, * java/security/cert/X509CertSelector.java, * java/security/cert/X509Certificate.java, * java/security/cert/X509Extension.java, * java/security/spec/AlgorithmParameterSpec.java, * java/security/spec/DSAParameterSpec.java, * java/security/spec/DSAPrivateKeySpec.java, * java/security/spec/DSAPublicKeySpec.java, * java/security/spec/EncodedKeySpec.java, * java/security/spec/InvalidParameterSpecException.java, * java/security/spec/KeySpec.java, * java/security/spec/PKCS8EncodedKeySpec.java, * java/security/spec/PSSParameterSpec.java, * java/security/spec/RSAKeyGenParameterSpec.java, * java/security/spec/RSAMultiPrimePrivateCrtKeySpec.java, * java/security/spec/RSAOtherPrimeInfo.java, * java/security/spec/RSAPrivateCrtKeySpec.java, * java/security/spec/RSAPrivateKeySpec.java, * java/security/spec/RSAPublicKeySpec.java, * java/security/spec/X509EncodedKeySpec.java, * java/sql/Array.java, * java/sql/BatchUpdateException.java, * java/sql/Blob.java, * java/sql/CallableStatement.java, * java/sql/Clob.java, * java/sql/Connection.java, * java/sql/DataTruncation.java, * java/sql/DatabaseMetaData.java, * java/sql/Date.java, * java/sql/Driver.java, * java/sql/DriverManager.java, * java/sql/DriverPropertyInfo.java, * java/sql/ParameterMetaData.java, * java/sql/PreparedStatement.java, * java/sql/Ref.java, * java/sql/ResultSet.java, * java/sql/ResultSetMetaData.java, * java/sql/SQLData.java, * java/sql/SQLException.java, * java/sql/SQLInput.java, * java/sql/SQLOutput.java, * java/sql/SQLPermission.java, * java/sql/SQLWarning.java, * java/sql/Savepoint.java, * java/sql/Statement.java, * java/sql/Struct.java, * java/sql/Time.java, * java/sql/Timestamp.java, * java/sql/Types.java, * java/text/Annotation.java, * java/text/AttributedCharacterIterator.java, * java/text/AttributedString.java, * java/text/AttributedStringIterator.java, * java/text/Bidi.java, * java/text/BreakIterator.java, * java/text/CharacterIterator.java, * java/text/ChoiceFormat.java, * java/text/CollationElementIterator.java, * java/text/CollationKey.java, * java/text/Collator.java, * java/text/DateFormat.java, * java/text/DateFormatSymbols.java, * java/text/DecimalFormat.java, * java/text/DecimalFormatSymbols.java, * java/text/FieldPosition.java, * java/text/Format.java, * java/text/MessageFormat.java, * java/text/NumberFormat.java, * java/text/ParsePosition.java, * java/text/RuleBasedCollator.java, * java/text/SimpleDateFormat.java, * java/text/StringCharacterIterator.java, * java/text/spi/DateFormatProvider.java, * java/text/spi/NumberFormatProvider.java, * java/util/AbstractCollection.java, * java/util/AbstractList.java, * java/util/AbstractMap.java, * java/util/AbstractSet.java, * java/util/ArrayList.java, * java/util/Arrays.java, * java/util/BitSet.java, * java/util/Calendar.java, * java/util/Collections.java, * java/util/Currency.java, * java/util/Date.java, * java/util/Dictionary.java, * java/util/DuplicateFormatFlagsException.java, * java/util/EnumMap.java, * java/util/EnumSet.java, * java/util/FormatFlagsConversionMismatchException.java, * java/util/Formattable.java, * java/util/FormattableFlags.java, * java/util/Formatter.java, * java/util/FormatterClosedException.java, * java/util/GregorianCalendar.java, * java/util/HashMap.java, * java/util/Hashtable.java, * java/util/IdentityHashMap.java, * java/util/IllegalFormatCodePointException.java, * java/util/IllegalFormatConversionException.java, * java/util/IllegalFormatException.java, * java/util/IllegalFormatFlagsException.java, * java/util/IllegalFormatPrecisionException.java, * java/util/IllegalFormatWidthException.java, * java/util/InputMismatchException.java, * java/util/LinkedHashMap.java, * java/util/LinkedHashSet.java, * java/util/LinkedList.java, * java/util/List.java, * java/util/Locale.java, * java/util/Map.java, * java/util/MissingFormatArgumentException.java, * java/util/MissingFormatWidthException.java, * java/util/PriorityQueue.java, * java/util/Properties.java, * java/util/PropertyPermission.java, * java/util/PropertyPermissionCollection.java, * java/util/Random.java, * java/util/ResourceBundle.java, * java/util/ServiceConfigurationError.java, * java/util/ServiceLoader.java, * java/util/SimpleTimeZone.java, * java/util/StringTokenizer.java, * java/util/TimeZone.java, * java/util/Timer.java, * java/util/TreeMap.java, * java/util/TreeSet.java, * java/util/UUID.java, * java/util/UnknownFormatConversionException.java, * java/util/UnknownFormatFlagsException.java, * java/util/Vector.java, * java/util/WeakHashMap.java, * java/util/concurrent/CopyOnWriteArrayList.java, * java/util/jar/Attributes.java, * java/util/jar/JarEntry.java, * java/util/jar/JarFile.java, * java/util/jar/JarInputStream.java, * java/util/jar/JarOutputStream.java, * java/util/jar/Manifest.java, * java/util/logging/ConsoleHandler.java, * java/util/logging/ErrorManager.java, * java/util/logging/FileHandler.java, * java/util/logging/Formatter.java, * java/util/logging/Handler.java, * java/util/logging/Level.java, * java/util/logging/LogManager.java, * java/util/logging/LogRecord.java, * java/util/logging/Logger.java, * java/util/logging/LoggingMXBean.java, * java/util/logging/LoggingPermission.java, * java/util/logging/MemoryHandler.java, * java/util/logging/SocketHandler.java, * java/util/logging/StreamHandler.java, * java/util/logging/XMLFormatter.java, * java/util/prefs/AbstractPreferences.java, * java/util/prefs/NodeChangeEvent.java, * java/util/prefs/NodeChangeListener.java, * java/util/prefs/PreferenceChangeEvent.java, * java/util/prefs/PreferenceChangeListener.java, * java/util/prefs/Preferences.java, * java/util/prefs/PreferencesFactory.java, * java/util/regex/MatchResult.java, * java/util/regex/Pattern.java, * java/util/regex/PatternSyntaxException.java, * java/util/spi/LocaleNameProvider.java, * java/util/spi/TimeZoneNameProvider.java, * java/util/zip/Adler32.java, * java/util/zip/CRC32.java, * java/util/zip/CheckedInputStream.java, * java/util/zip/CheckedOutputStream.java, * java/util/zip/Deflater.java, * java/util/zip/DeflaterEngine.java, * java/util/zip/DeflaterHuffman.java, * java/util/zip/DeflaterOutputStream.java, * java/util/zip/DeflaterPending.java, * java/util/zip/GZIPInputStream.java, * java/util/zip/GZIPOutputStream.java, * java/util/zip/Inflater.java, * java/util/zip/InflaterDynHeader.java, * java/util/zip/InflaterHuffmanTree.java, * java/util/zip/InflaterInputStream.java, * java/util/zip/OutputWindow.java, * java/util/zip/PendingBuffer.java, * java/util/zip/StreamManipulator.java, * java/util/zip/ZipConstants.java, * java/util/zip/ZipEntry.java, * java/util/zip/ZipFile.java, * java/util/zip/ZipInputStream.java, * java/util/zip/ZipOutputStream.java, * javax/accessibility/AccessibleExtendedText.java, * javax/accessibility/AccessibleRelation.java, * javax/accessibility/AccessibleRole.java, * javax/accessibility/AccessibleState.java, * javax/activation/ActivationDataFlavor.java, * javax/activation/CommandInfo.java, * javax/activation/CommandMap.java, * javax/activation/CommandObject.java, * javax/activation/DataContentHandler.java, * javax/activation/DataContentHandlerFactory.java, * javax/activation/DataHandler.java, * javax/activation/DataHandlerDataSource.java, * javax/activation/DataSource.java, * javax/activation/DataSourceDataContentHandler.java, * javax/activation/FileDataSource.java, * javax/activation/FileTypeMap.java, * javax/activation/MailcapCommandMap.java, * javax/activation/MimeType.java, * javax/activation/MimeTypeParameterList.java, * javax/activation/MimeTypeParseException.java, * javax/activation/MimetypesFileTypeMap.java, * javax/activation/ObjectDataContentHandler.java, * javax/activation/URLDataSource.java, * javax/activation/UnsupportedDataTypeException.java, * javax/crypto/Cipher.java, * javax/crypto/CipherOutputStream.java, * javax/crypto/ExemptionMechanism.java, * javax/crypto/KeyAgreement.java, * javax/crypto/KeyGenerator.java, * javax/crypto/Mac.java, * javax/crypto/MacSpi.java, * javax/crypto/SecretKeyFactory.java, * javax/crypto/spec/PBEKeySpec.java, * javax/imageio/IIOImage.java, * javax/imageio/IIOParam.java, * javax/imageio/IIOParamController.java, * javax/imageio/ImageIO.java, * javax/imageio/ImageReadParam.java, * javax/imageio/ImageReader.java, * javax/imageio/ImageTranscoder.java, * javax/imageio/ImageTypeSpecifier.java, * javax/imageio/ImageWriteParam.java, * javax/imageio/ImageWriter.java, * javax/imageio/event/IIOReadProgressListener.java, * javax/imageio/event/IIOReadUpdateListener.java, * javax/imageio/event/IIOWriteProgressListener.java, * javax/imageio/metadata/IIOInvalidTreeException.java, * javax/imageio/metadata/IIOMetadata.java, * javax/imageio/metadata/IIOMetadataFormatImpl.java, * javax/imageio/metadata/IIOMetadataNode.java, * javax/imageio/plugins/bmp/BMPImageWriteParam.java, * javax/imageio/plugins/jpeg/JPEGHuffmanTable.java, * javax/imageio/spi/IIORegistry.java, * javax/imageio/spi/ImageReaderSpi.java, * javax/imageio/spi/ImageWriterSpi.java, * javax/imageio/spi/RegisterableService.java, * javax/imageio/spi/ServiceRegistry.java, * javax/imageio/stream/FileCacheImageInputStream.java, * javax/imageio/stream/FileCacheImageOutputStream.java, * javax/imageio/stream/FileImageInputStream.java, * javax/imageio/stream/FileImageOutputStream.java, * javax/imageio/stream/ImageInputStream.java, * javax/imageio/stream/ImageInputStreamImpl.java, * javax/imageio/stream/ImageOutputStreamImpl.java, * javax/imageio/stream/MemoryCacheImageInputStream.java, * javax/imageio/stream/MemoryCacheImageOutputStream.java, * javax/management/Attribute.java, * javax/management/AttributeChangeNotification.java, * javax/management/AttributeChangeNotificationFilter.java, * javax/management/AttributeList.java, * javax/management/AttributeNotFoundException.java, * javax/management/AttributeValueExp.java, * javax/management/BadAttributeValueExpException.java, * javax/management/BadBinaryOpValueExpException.java, * javax/management/BadStringOperationException.java, * javax/management/DefaultLoaderRepository.java, * javax/management/Descriptor.java, * javax/management/DynamicMBean.java, * javax/management/InstanceAlreadyExistsException.java, * javax/management/InstanceNotFoundException.java, * javax/management/IntrospectionException.java, * javax/management/InvalidApplicationException.java, * javax/management/InvalidAttributeValueException.java, * javax/management/JMException.java, * javax/management/JMRuntimeException.java, * javax/management/JMX.java, * javax/management/ListenerNotFoundException.java, * javax/management/MBeanAttributeInfo.java, * javax/management/MBeanConstructorInfo.java, * javax/management/MBeanException.java, * javax/management/MBeanFeatureInfo.java, * javax/management/MBeanInfo.java, * javax/management/MBeanNotificationInfo.java, * javax/management/MBeanOperationInfo.java, * javax/management/MBeanParameterInfo.java, * javax/management/MBeanPermission.java, * javax/management/MBeanRegistrationException.java, * javax/management/MBeanServer.java, * javax/management/MBeanServerBuilder.java, * javax/management/MBeanServerConnection.java, * javax/management/MBeanServerDelegate.java, * javax/management/MBeanServerFactory.java, * javax/management/MBeanServerInvocationHandler.java, * javax/management/MBeanServerNotification.java, * javax/management/MBeanServerPermission.java, * javax/management/MBeanTrustPermission.java, * javax/management/MalformedObjectNameException.java, * javax/management/NotCompliantMBeanException.java, * javax/management/Notification.java, * javax/management/NotificationBroadcaster.java, * javax/management/NotificationBroadcasterSupport.java, * javax/management/NotificationEmitter.java, * javax/management/NotificationFilter.java, * javax/management/NotificationFilterSupport.java, * javax/management/NotificationListener.java, * javax/management/ObjectInstance.java, * javax/management/ObjectName.java, * javax/management/OperationsException.java, * javax/management/PersistentMBean.java, * javax/management/Query.java, * javax/management/QueryEval.java, * javax/management/QueryExp.java, * javax/management/ReflectionException.java, * javax/management/RuntimeErrorException.java, * javax/management/RuntimeMBeanException.java, * javax/management/RuntimeOperationsException.java, * javax/management/ServiceNotFoundException.java, * javax/management/StandardMBean.java, * javax/management/StringValueExp.java, * javax/management/ValueExp.java, * javax/management/loading/ClassLoaderRepository.java, * javax/management/openmbean/ArrayType.java, * javax/management/openmbean/CompositeData.java, * javax/management/openmbean/CompositeDataInvocationHandler.java, * javax/management/openmbean/CompositeDataSupport.java, * javax/management/openmbean/CompositeType.java, * javax/management/openmbean/InvalidKeyException.java, * javax/management/openmbean/InvalidOpenTypeException.java, * javax/management/openmbean/KeyAlreadyExistsException.java, * javax/management/openmbean/OpenDataException.java, * javax/management/openmbean/OpenMBeanAttributeInfo.java, * javax/management/openmbean/OpenMBeanAttributeInfoSupport.java, * javax/management/openmbean/OpenMBeanConstructorInfo.java, * javax/management/openmbean/OpenMBeanConstructorInfoSupport.java, * javax/management/openmbean/OpenMBeanInfo.java, * javax/management/openmbean/OpenMBeanInfoSupport.java, * javax/management/openmbean/OpenMBeanOperationInfo.java, * javax/management/openmbean/OpenMBeanOperationInfoSupport.java, * javax/management/openmbean/OpenMBeanParameterInfo.java, * javax/management/openmbean/OpenMBeanParameterInfoSupport.java, * javax/management/openmbean/OpenType.java, * javax/management/openmbean/SimpleType.java, * javax/management/openmbean/TabularData.java, * javax/management/openmbean/TabularDataSupport.java, * javax/management/openmbean/TabularType.java, * javax/management/remote/NotificationResult.java, * javax/management/remote/TargetedNotification.java, * javax/management/remote/rmi/RMIConnection.java, * javax/naming/AuthenticationException.java, * javax/naming/AuthenticationNotSupportedException.java, * javax/naming/BinaryRefAddr.java, * javax/naming/Binding.java, * javax/naming/CannotProceedException.java, * javax/naming/CommunicationException.java, * javax/naming/CompositeName.java, * javax/naming/CompoundName.java, * javax/naming/ConfigurationException.java, * javax/naming/Context.java, * javax/naming/ContextNotEmptyException.java, * javax/naming/InitialContext.java, * javax/naming/InsufficientResourcesException.java, * javax/naming/InterruptedNamingException.java, * javax/naming/InvalidNameException.java, * javax/naming/LimitExceededException.java, * javax/naming/LinkException.java, * javax/naming/LinkLoopException.java, * javax/naming/MalformedLinkException.java, * javax/naming/Name.java, * javax/naming/NameAlreadyBoundException.java, * javax/naming/NameClassPair.java, * javax/naming/NameNotFoundException.java, * javax/naming/NameParser.java, * javax/naming/NamingEnumeration.java, * javax/naming/NamingException.java, * javax/naming/NamingSecurityException.java, * javax/naming/NoInitialContextException.java, * javax/naming/NoPermissionException.java, * javax/naming/NotContextException.java, * javax/naming/PartialResultException.java, * javax/naming/RefAddr.java, * javax/naming/Reference.java, * javax/naming/Referenceable.java, * javax/naming/ReferralException.java, * javax/naming/ServiceUnavailableException.java, * javax/naming/SizeLimitExceededException.java, * javax/naming/StringRefAddr.java, * javax/naming/TimeLimitExceededException.java, * javax/naming/directory/AttributeInUseException.java, * javax/naming/directory/Attributes.java, * javax/naming/directory/BasicAttribute.java, * javax/naming/directory/BasicAttributes.java, * javax/naming/directory/InitialDirContext.java, * javax/naming/directory/ModificationItem.java, * javax/naming/directory/SearchControls.java, * javax/naming/directory/SearchResult.java, * javax/naming/event/EventContext.java, * javax/naming/event/NamespaceChangeListener.java, * javax/naming/event/NamingEvent.java, * javax/naming/event/NamingExceptionEvent.java, * javax/naming/event/NamingListener.java, * javax/naming/event/ObjectChangeListener.java, * javax/naming/ldap/Control.java, * javax/naming/ldap/ControlFactory.java, * javax/naming/ldap/ExtendedRequest.java, * javax/naming/ldap/ExtendedResponse.java, * javax/naming/ldap/HasControls.java, * javax/naming/ldap/InitialLdapContext.java, * javax/naming/ldap/LdapContext.java, * javax/naming/ldap/LdapReferralException.java, * javax/naming/ldap/StartTlsRequest.java, * javax/naming/ldap/UnsolicitedNotification.java, * javax/naming/ldap/UnsolicitedNotificationEvent.java, * javax/naming/ldap/UnsolicitedNotificationListener.java, * javax/naming/spi/DirObjectFactory.java, * javax/naming/spi/DirStateFactory.java, * javax/naming/spi/DirectoryManager.java, * javax/naming/spi/InitialContextFactory.java, * javax/naming/spi/InitialContextFactoryBuilder.java, * javax/naming/spi/NamingManager.java, * javax/naming/spi/ObjectFactory.java, * javax/naming/spi/ObjectFactoryBuilder.java, * javax/naming/spi/ResolveResult.java, * javax/naming/spi/Resolver.java, * javax/naming/spi/StateFactory.java, * javax/net/ssl/CertPathTrustManagerParameters.java, * javax/net/ssl/KeyManagerFactory.java, * javax/net/ssl/KeyStoreBuilderParameters.java, * javax/net/ssl/SSLContext.java, * javax/net/ssl/SSLEngine.java, * javax/net/ssl/SSLEngineResult.java, * javax/net/ssl/SSLException.java, * javax/net/ssl/TrustManagerFactory.java, * javax/net/ssl/X509ExtendedKeyManager.java, * javax/print/AttributeException.java, * javax/print/CancelablePrintJob.java, * javax/print/Doc.java, * javax/print/DocFlavor.java, * javax/print/DocPrintJob.java, * javax/print/FlavorException.java, * javax/print/MultiDoc.java, * javax/print/MultiDocPrintJob.java, * javax/print/MultiDocPrintService.java, * javax/print/PrintException.java, * javax/print/PrintService.java, * javax/print/PrintServiceLookup.java, * javax/print/ServiceUI.java, * javax/print/ServiceUIFactory.java, * javax/print/SimpleDoc.java, * javax/print/StreamPrintService.java, * javax/print/StreamPrintServiceFactory.java, * javax/print/URIException.java, * javax/print/attribute/Attribute.java, * javax/print/attribute/AttributeSet.java, * javax/print/attribute/AttributeSetUtilities.java, * javax/print/attribute/DateTimeSyntax.java, * javax/print/attribute/DocAttribute.java, * javax/print/attribute/DocAttributeSet.java, * javax/print/attribute/EnumSyntax.java, * javax/print/attribute/HashAttributeSet.java, * javax/print/attribute/HashDocAttributeSet.java, * javax/print/attribute/HashPrintJobAttributeSet.java, * javax/print/attribute/HashPrintRequestAttributeSet.java, * javax/print/attribute/HashPrintServiceAttributeSet.java, * javax/print/attribute/IntegerSyntax.java, * javax/print/attribute/PrintJobAttribute.java, * javax/print/attribute/PrintJobAttributeSet.java, * javax/print/attribute/PrintRequestAttribute.java, * javax/print/attribute/PrintRequestAttributeSet.java, * javax/print/attribute/PrintServiceAttribute.java, * javax/print/attribute/PrintServiceAttributeSet.java, * javax/print/attribute/ResolutionSyntax.java, * javax/print/attribute/SetOfIntegerSyntax.java, * javax/print/attribute/Size2DSyntax.java, * javax/print/attribute/SupportedValuesAttribute.java, * javax/print/attribute/TextSyntax.java, * javax/print/attribute/URISyntax.java, * javax/print/attribute/UnmodifiableSetException.java, * javax/print/attribute/standard/Chromaticity.java, * javax/print/attribute/standard/ColorSupported.java, * javax/print/attribute/standard/Compression.java, * javax/print/attribute/standard/Copies.java, * javax/print/attribute/standard/CopiesSupported.java, * javax/print/attribute/standard/DateTimeAtCompleted.java, * javax/print/attribute/standard/DateTimeAtCreation.java, * javax/print/attribute/standard/DateTimeAtProcessing.java, * javax/print/attribute/standard/Destination.java, * javax/print/attribute/standard/DocumentName.java, * javax/print/attribute/standard/Fidelity.java, * javax/print/attribute/standard/Finishings.java, * javax/print/attribute/standard/JobHoldUntil.java, * javax/print/attribute/standard/JobImpressions.java, * javax/print/attribute/standard/JobImpressionsCompleted.java, * javax/print/attribute/standard/JobImpressionsSupported.java, * javax/print/attribute/standard/JobKOctets.java, * javax/print/attribute/standard/JobKOctetsProcessed.java, * javax/print/attribute/standard/JobKOctetsSupported.java, * javax/print/attribute/standard/JobMediaSheets.java, * javax/print/attribute/standard/JobMediaSheetsCompleted.java, * javax/print/attribute/standard/JobMediaSheetsSupported.java, * javax/print/attribute/standard/JobMessageFromOperator.java, * javax/print/attribute/standard/JobName.java, * javax/print/attribute/standard/JobOriginatingUserName.java, * javax/print/attribute/standard/JobPriority.java, * javax/print/attribute/standard/JobPrioritySupported.java, * javax/print/attribute/standard/JobSheets.java, * javax/print/attribute/standard/JobState.java, * javax/print/attribute/standard/JobStateReason.java, * javax/print/attribute/standard/JobStateReasons.java, * javax/print/attribute/standard/Media.java, * javax/print/attribute/standard/MediaName.java, * javax/print/attribute/standard/MediaPrintableArea.java, * javax/print/attribute/standard/MediaSize.java, * javax/print/attribute/standard/MediaSizeName.java, * javax/print/attribute/standard/MediaTray.java, * javax/print/attribute/standard/MultipleDocumentHandling.java, * javax/print/attribute/standard/NumberOfDocuments.java, * javax/print/attribute/standard/NumberOfInterveningJobs.java, * javax/print/attribute/standard/NumberUp.java, * javax/print/attribute/standard/NumberUpSupported.java, * javax/print/attribute/standard/OrientationRequested.java, * javax/print/attribute/standard/OutputDeviceAssigned.java, * javax/print/attribute/standard/PDLOverrideSupported.java, * javax/print/attribute/standard/PageRanges.java, * javax/print/attribute/standard/PagesPerMinute.java, * javax/print/attribute/standard/PagesPerMinuteColor.java, * javax/print/attribute/standard/PresentationDirection.java, * javax/print/attribute/standard/PrintQuality.java, * javax/print/attribute/standard/PrinterInfo.java, * javax/print/attribute/standard/PrinterIsAcceptingJobs.java, * javax/print/attribute/standard/PrinterLocation.java, * javax/print/attribute/standard/PrinterMakeAndModel.java, * javax/print/attribute/standard/PrinterMessageFromOperator.java, * javax/print/attribute/standard/PrinterMoreInfo.java, * javax/print/attribute/standard/PrinterMoreInfoManufacturer.java, * javax/print/attribute/standard/PrinterName.java, * javax/print/attribute/standard/PrinterResolution.java, * javax/print/attribute/standard/PrinterState.java, * javax/print/attribute/standard/PrinterStateReason.java, * javax/print/attribute/standard/PrinterStateReasons.java, * javax/print/attribute/standard/PrinterURI.java, * javax/print/attribute/standard/QueuedJobCount.java, * javax/print/attribute/standard/ReferenceUriSchemesSupported.java, * javax/print/attribute/standard/RequestingUserName.java, * javax/print/attribute/standard/Severity.java, * javax/print/attribute/standard/SheetCollate.java, * javax/print/attribute/standard/Sides.java, * javax/print/event/PrintEvent.java, * javax/print/event/PrintJobAdapter.java, * javax/print/event/PrintJobAttributeEvent.java, * javax/print/event/PrintJobAttributeListener.java, * javax/print/event/PrintJobEvent.java, * javax/print/event/PrintJobListener.java, * javax/print/event/PrintServiceAttributeEvent.java, * javax/print/event/PrintServiceAttributeListener.java, * javax/rmi/CORBA/ClassDesc.java, * javax/rmi/CORBA/PortableRemoteObjectDelegate.java, * javax/rmi/CORBA/Stub.java, * javax/rmi/CORBA/StubDelegate.java, * javax/rmi/CORBA/Tie.java, * javax/rmi/CORBA/Util.java, * javax/rmi/CORBA/UtilDelegate.java, * javax/rmi/CORBA/ValueHandler.java, * javax/rmi/CORBA/ValueHandlerMultiFormat.java, * javax/rmi/PortableRemoteObject.java, * javax/rmi/ssl/SslRMIClientSocketFactory.java, * javax/rmi/ssl/SslRMIServerSocketFactory.java, * javax/security/auth/Subject.java, * javax/security/auth/callback/ChoiceCallback.java, * javax/security/auth/callback/ConfirmationCallback.java, * javax/security/auth/callback/NameCallback.java, * javax/security/auth/callback/PasswordCallback.java, * javax/security/auth/callback/TextInputCallback.java, * javax/security/auth/callback/TextOutputCallback.java, * javax/security/auth/kerberos/DelegationPermission.java, * javax/security/auth/kerberos/KerberosKey.java, * javax/security/auth/kerberos/KerberosPrincipal.java, * javax/security/auth/kerberos/ServicePermission.java, * javax/security/auth/login/AccountNotFoundException.java, * javax/security/auth/login/AppConfigurationEntry.java, * javax/security/auth/login/LoginContext.java, * javax/security/sasl/Sasl.java, * javax/sound/midi/ControllerEventListener.java, * javax/sound/midi/Instrument.java, * javax/sound/midi/InvalidMidiDataException.java, * javax/sound/midi/MetaEventListener.java, * javax/sound/midi/MetaMessage.java, * javax/sound/midi/MidiChannel.java, * javax/sound/midi/MidiDevice.java, * javax/sound/midi/MidiEvent.java, * javax/sound/midi/MidiFileFormat.java, * javax/sound/midi/MidiMessage.java, * javax/sound/midi/MidiSystem.java, * javax/sound/midi/MidiUnavailableException.java, * javax/sound/midi/Patch.java, * javax/sound/midi/Receiver.java, * javax/sound/midi/Sequence.java, * javax/sound/midi/Sequencer.java, * javax/sound/midi/ShortMessage.java, * javax/sound/midi/Soundbank.java, * javax/sound/midi/SoundbankResource.java, * javax/sound/midi/Synthesizer.java, * javax/sound/midi/SysexMessage.java, * javax/sound/midi/Track.java, * javax/sound/midi/Transmitter.java, * javax/sound/midi/VoiceStatus.java, * javax/sound/midi/spi/MidiDeviceProvider.java, * javax/sound/midi/spi/MidiFileReader.java, * javax/sound/midi/spi/MidiFileWriter.java, * javax/sound/midi/spi/SoundbankReader.java, * javax/sound/sampled/AudioFileFormat.java, * javax/sound/sampled/AudioFormat.java, * javax/sound/sampled/AudioInputStream.java, * javax/sound/sampled/AudioPermission.java, * javax/sound/sampled/AudioSystem.java, * javax/sound/sampled/BooleanControl.java, * javax/sound/sampled/Clip.java, * javax/sound/sampled/CompoundControl.java, * javax/sound/sampled/DataLine.java, * javax/sound/sampled/EnumControl.java, * javax/sound/sampled/FloatControl.java, * javax/sound/sampled/Line.java, * javax/sound/sampled/LineEvent.java, * javax/sound/sampled/LineUnavailableException.java, * javax/sound/sampled/Mixer.java, * javax/sound/sampled/Port.java, * javax/sound/sampled/ReverbType.java, * javax/sound/sampled/UnsupportedAudioFileException.java, * javax/sound/sampled/spi/AudioFileReader.java, * javax/sound/sampled/spi/AudioFileWriter.java, * javax/sound/sampled/spi/FormatConversionProvider.java, * javax/sql/ConnectionEvent.java, * javax/sql/ConnectionEventListener.java, * javax/sql/ConnectionPoolDataSource.java, * javax/sql/DataSource.java, * javax/sql/PooledConnection.java, * javax/sql/RowSet.java, * javax/sql/RowSetEvent.java, * javax/sql/RowSetInternal.java, * javax/sql/RowSetListener.java, * javax/sql/RowSetMetaData.java, * javax/sql/RowSetReader.java, * javax/sql/RowSetWriter.java, * javax/sql/XAConnection.java, * javax/sql/XADataSource.java, * javax/swing/AbstractAction.java, * javax/swing/AbstractButton.java, * javax/swing/AbstractCellEditor.java, * javax/swing/AbstractListModel.java, * javax/swing/AbstractSpinnerModel.java, * javax/swing/Action.java, * javax/swing/BorderFactory.java, * javax/swing/BoundedRangeModel.java, * javax/swing/Box.java, * javax/swing/BoxLayout.java, * javax/swing/ButtonGroup.java, * javax/swing/ButtonModel.java, * javax/swing/CellEditor.java, * javax/swing/CellRendererPane.java, * javax/swing/ComboBoxModel.java, * javax/swing/ComponentInputMap.java, * javax/swing/DebugGraphics.java, * javax/swing/DefaultBoundedRangeModel.java, * javax/swing/DefaultButtonModel.java, * javax/swing/DefaultCellEditor.java, * javax/swing/DefaultComboBoxModel.java, * javax/swing/DefaultDesktopManager.java, * javax/swing/DefaultFocusManager.java, * javax/swing/DefaultListModel.java, * javax/swing/DefaultListSelectionModel.java, * javax/swing/DefaultSingleSelectionModel.java, * javax/swing/FocusManager.java, * javax/swing/GrayFilter.java, * javax/swing/Icon.java, * javax/swing/ImageIcon.java, * javax/swing/InputMap.java, * javax/swing/InternalFrameFocusTraversalPolicy.java, * javax/swing/JApplet.java, * javax/swing/JButton.java, * javax/swing/JCheckBox.java, * javax/swing/JCheckBoxMenuItem.java, * javax/swing/JComboBox.java, * javax/swing/JComponent.java, * javax/swing/JDesktopPane.java, * javax/swing/JDialog.java, * javax/swing/JEditorPane.java, * javax/swing/JFileChooser.java, * javax/swing/JFormattedTextField.java, * javax/swing/JFrame.java, * javax/swing/JInternalFrame.java, * javax/swing/JLabel.java, * javax/swing/JLayeredPane.java, * javax/swing/JList.java, * javax/swing/JMenu.java, * javax/swing/JMenuBar.java, * javax/swing/JMenuItem.java, * javax/swing/JOptionPane.java, * javax/swing/JPanel.java, * javax/swing/JPasswordField.java, * javax/swing/JPopupMenu.java, * javax/swing/JProgressBar.java, * javax/swing/JRadioButton.java, * javax/swing/JRadioButtonMenuItem.java, * javax/swing/JRootPane.java, * javax/swing/JScrollBar.java, * javax/swing/JScrollPane.java, * javax/swing/JSeparator.java, * javax/swing/JSlider.java, * javax/swing/JSpinner.java, * javax/swing/JSplitPane.java, * javax/swing/JTabbedPane.java, * javax/swing/JTable.java, * javax/swing/JTextArea.java, * javax/swing/JTextField.java, * javax/swing/JTextPane.java, * javax/swing/JToggleButton.java, * javax/swing/JToolBar.java, * javax/swing/JToolTip.java, * javax/swing/JTree.java, * javax/swing/JViewport.java, * javax/swing/JWindow.java, * javax/swing/KeyStroke.java, * javax/swing/KeyboardManager.java, * javax/swing/LayoutFocusTraversalPolicy.java, * javax/swing/ListCellRenderer.java, * javax/swing/ListSelectionModel.java, * javax/swing/LookAndFeel.java, * javax/swing/MenuSelectionManager.java, * javax/swing/OverlayLayout.java, * javax/swing/Popup.java, * javax/swing/PopupFactory.java, * javax/swing/ProgressMonitor.java, * javax/swing/ProgressMonitorInputStream.java, * javax/swing/Renderer.java, * javax/swing/RepaintManager.java, * javax/swing/ScrollPaneLayout.java, * javax/swing/Scrollable.java, * javax/swing/SingleSelectionModel.java, * javax/swing/SizeRequirements.java, * javax/swing/SizeSequence.java, * javax/swing/SortingFocusTraversalPolicy.java, * javax/swing/SpinnerDateModel.java, * javax/swing/SpinnerListModel.java, * javax/swing/SpinnerModel.java, * javax/swing/SpinnerNumberModel.java, * javax/swing/Spring.java, * javax/swing/SpringLayout.java, * javax/swing/SwingConstants.java, * javax/swing/SwingUtilities.java, * javax/swing/Timer.java, * javax/swing/ToolTipManager.java, * javax/swing/TransferHandler.java, * javax/swing/UIDefaults.java, * javax/swing/UIManager.java, * javax/swing/UnsupportedLookAndFeelException.java, * javax/swing/ViewportLayout.java, * javax/swing/WindowConstants.java, * javax/swing/border/AbstractBorder.java, * javax/swing/border/BevelBorder.java, * javax/swing/border/Border.java, * javax/swing/border/CompoundBorder.java, * javax/swing/border/EmptyBorder.java, * javax/swing/border/EtchedBorder.java, * javax/swing/border/LineBorder.java, * javax/swing/border/MatteBorder.java, * javax/swing/border/SoftBevelBorder.java, * javax/swing/border/TitledBorder.java, * javax/swing/colorchooser/AbstractColorChooserPanel.java, * javax/swing/colorchooser/ColorChooserComponentFactory.java, * javax/swing/colorchooser/ColorSelectionModel.java, * javax/swing/colorchooser/DefaultColorSelectionModel.java, * javax/swing/colorchooser/DefaultHSBChooserPanel.java, * javax/swing/colorchooser/DefaultRGBChooserPanel.java, * javax/swing/colorchooser/DefaultSwatchChooserPanel.java, * javax/swing/event/AncestorEvent.java, * javax/swing/event/AncestorListener.java, * javax/swing/event/CaretEvent.java, * javax/swing/event/CaretListener.java, * javax/swing/event/CellEditorListener.java, * javax/swing/event/ChangeEvent.java, * javax/swing/event/ChangeListener.java, * javax/swing/event/DocumentEvent.java, * javax/swing/event/DocumentListener.java, * javax/swing/event/EventListenerList.java, * javax/swing/event/HyperlinkEvent.java, * javax/swing/event/HyperlinkListener.java, * javax/swing/event/InternalFrameAdapter.java, * javax/swing/event/InternalFrameEvent.java, * javax/swing/event/InternalFrameListener.java, * javax/swing/event/ListDataEvent.java, * javax/swing/event/ListDataListener.java, * javax/swing/event/ListSelectionEvent.java, * javax/swing/event/ListSelectionListener.java, * javax/swing/event/MenuDragMouseEvent.java, * javax/swing/event/MenuDragMouseListener.java, * javax/swing/event/MenuEvent.java, * javax/swing/event/MenuKeyEvent.java, * javax/swing/event/MenuKeyListener.java, * javax/swing/event/MenuListener.java, * javax/swing/event/MouseInputListener.java, * javax/swing/event/PopupMenuEvent.java, * javax/swing/event/PopupMenuListener.java, * javax/swing/event/SwingPropertyChangeSupport.java, * javax/swing/event/TableColumnModelEvent.java, * javax/swing/event/TableColumnModelListener.java, * javax/swing/event/TableModelEvent.java, * javax/swing/event/TableModelListener.java, * javax/swing/event/TreeExpansionEvent.java, * javax/swing/event/TreeExpansionListener.java, * javax/swing/event/TreeModelEvent.java, * javax/swing/event/TreeModelListener.java, * javax/swing/event/TreeSelectionEvent.java, * javax/swing/event/TreeSelectionListener.java, * javax/swing/event/TreeWillExpandListener.java, * javax/swing/event/UndoableEditEvent.java, * javax/swing/filechooser/FileFilter.java, * javax/swing/filechooser/FileSystemView.java, * javax/swing/filechooser/FileView.java, * javax/swing/filechooser/UnixFileSystemView.java, * javax/swing/plaf/BorderUIResource.java, * javax/swing/plaf/ColorChooserUI.java, * javax/swing/plaf/ColorUIResource.java, * javax/swing/plaf/ComboBoxUI.java, * javax/swing/plaf/ComponentInputMapUIResource.java, * javax/swing/plaf/ComponentUI.java, * javax/swing/plaf/FileChooserUI.java, * javax/swing/plaf/IconUIResource.java, * javax/swing/plaf/SplitPaneUI.java, * javax/swing/plaf/TabbedPaneUI.java, * javax/swing/plaf/TextUI.java, * javax/swing/plaf/UIResource.java, * javax/swing/plaf/basic/BasicArrowButton.java, * javax/swing/plaf/basic/BasicBorders.java, * javax/swing/plaf/basic/BasicButtonListener.java, * javax/swing/plaf/basic/BasicButtonUI.java, * javax/swing/plaf/basic/BasicCheckBoxMenuItemUI.java, * javax/swing/plaf/basic/BasicCheckBoxUI.java, * javax/swing/plaf/basic/BasicColorChooserUI.java, * javax/swing/plaf/basic/BasicComboBoxEditor.java, * javax/swing/plaf/basic/BasicComboBoxRenderer.java, * javax/swing/plaf/basic/BasicComboBoxUI.java, * javax/swing/plaf/basic/BasicComboPopup.java, * javax/swing/plaf/basic/BasicDesktopIconUI.java, * javax/swing/plaf/basic/BasicDesktopPaneUI.java, * javax/swing/plaf/basic/BasicDirectoryModel.java, * javax/swing/plaf/basic/BasicEditorPaneUI.java, * javax/swing/plaf/basic/BasicFileChooserUI.java, * javax/swing/plaf/basic/BasicFormattedTextFieldUI.java, * javax/swing/plaf/basic/BasicGraphicsUtils.java, * javax/swing/plaf/basic/BasicHTML.java, * javax/swing/plaf/basic/BasicIconFactory.java, * javax/swing/plaf/basic/BasicInternalFrameTitlePane.java, * javax/swing/plaf/basic/BasicInternalFrameUI.java, * javax/swing/plaf/basic/BasicLabelUI.java, * javax/swing/plaf/basic/BasicListUI.java, * javax/swing/plaf/basic/BasicLookAndFeel.java, * javax/swing/plaf/basic/BasicMenuBarUI.java, * javax/swing/plaf/basic/BasicMenuItemUI.java, * javax/swing/plaf/basic/BasicMenuUI.java, * javax/swing/plaf/basic/BasicOptionPaneUI.java, * javax/swing/plaf/basic/BasicPanelUI.java, * javax/swing/plaf/basic/BasicPasswordFieldUI.java, * javax/swing/plaf/basic/BasicPopupMenuUI.java, * javax/swing/plaf/basic/BasicProgressBarUI.java, * javax/swing/plaf/basic/BasicRadioButtonUI.java, * javax/swing/plaf/basic/BasicRootPaneUI.java, * javax/swing/plaf/basic/BasicScrollBarUI.java, * javax/swing/plaf/basic/BasicScrollPaneUI.java, * javax/swing/plaf/basic/BasicSeparatorUI.java, * javax/swing/plaf/basic/BasicSliderUI.java, * javax/swing/plaf/basic/BasicSpinnerUI.java, * javax/swing/plaf/basic/BasicSplitPaneDivider.java, * javax/swing/plaf/basic/BasicSplitPaneUI.java, * javax/swing/plaf/basic/BasicTabbedPaneUI.java, * javax/swing/plaf/basic/BasicTableHeaderUI.java, * javax/swing/plaf/basic/BasicTableUI.java, * javax/swing/plaf/basic/BasicTextAreaUI.java, * javax/swing/plaf/basic/BasicTextFieldUI.java, * javax/swing/plaf/basic/BasicTextPaneUI.java, * javax/swing/plaf/basic/BasicTextUI.java, * javax/swing/plaf/basic/BasicToggleButtonUI.java, * javax/swing/plaf/basic/BasicToolBarUI.java, * javax/swing/plaf/basic/BasicToolTipUI.java, * javax/swing/plaf/basic/BasicTreeUI.java, * javax/swing/plaf/basic/BasicViewportUI.java, * javax/swing/plaf/metal/DefaultMetalTheme.java, * javax/swing/plaf/metal/MetalBorders.java, * javax/swing/plaf/metal/MetalButtonListener.java, * javax/swing/plaf/metal/MetalButtonUI.java, * javax/swing/plaf/metal/MetalCheckBoxIcon.java, * javax/swing/plaf/metal/MetalCheckBoxUI.java, * javax/swing/plaf/metal/MetalComboBoxButton.java, * javax/swing/plaf/metal/MetalComboBoxEditor.java, * javax/swing/plaf/metal/MetalComboBoxIcon.java, * javax/swing/plaf/metal/MetalComboBoxUI.java, * javax/swing/plaf/metal/MetalFileChooserUI.java, * javax/swing/plaf/metal/MetalIconFactory.java, * javax/swing/plaf/metal/MetalInternalFrameTitlePane.java, * javax/swing/plaf/metal/MetalInternalFrameUI.java, * javax/swing/plaf/metal/MetalLabelUI.java, * javax/swing/plaf/metal/MetalLookAndFeel.java, * javax/swing/plaf/metal/MetalMenuBarUI.java, * javax/swing/plaf/metal/MetalProgressBarUI.java, * javax/swing/plaf/metal/MetalRadioButtonUI.java, * javax/swing/plaf/metal/MetalRootPaneUI.java, * javax/swing/plaf/metal/MetalScrollBarUI.java, * javax/swing/plaf/metal/MetalScrollButton.java, * javax/swing/plaf/metal/MetalScrollPaneUI.java, * javax/swing/plaf/metal/MetalSeparatorUI.java, * javax/swing/plaf/metal/MetalSliderUI.java, * javax/swing/plaf/metal/MetalSplitPaneDivider.java, * javax/swing/plaf/metal/MetalSplitPaneUI.java, * javax/swing/plaf/metal/MetalTabbedPaneUI.java, * javax/swing/plaf/metal/MetalTextFieldUI.java, * javax/swing/plaf/metal/MetalTheme.java, * javax/swing/plaf/metal/MetalToggleButtonUI.java, * javax/swing/plaf/metal/MetalToolBarUI.java, * javax/swing/plaf/metal/MetalToolTipUI.java, * javax/swing/plaf/metal/MetalTreeUI.java, * javax/swing/plaf/metal/MetalUtils.java, * javax/swing/plaf/metal/OceanTheme.java, * javax/swing/plaf/multi/MultiButtonUI.java, * javax/swing/plaf/multi/MultiColorChooserUI.java, * javax/swing/plaf/multi/MultiComboBoxUI.java, * javax/swing/plaf/multi/MultiDesktopIconUI.java, * javax/swing/plaf/multi/MultiDesktopPaneUI.java, * javax/swing/plaf/multi/MultiFileChooserUI.java, * javax/swing/plaf/multi/MultiInternalFrameUI.java, * javax/swing/plaf/multi/MultiLabelUI.java, * javax/swing/plaf/multi/MultiListUI.java, * javax/swing/plaf/multi/MultiLookAndFeel.java, * javax/swing/plaf/multi/MultiMenuBarUI.java, * javax/swing/plaf/multi/MultiMenuItemUI.java, * javax/swing/plaf/multi/MultiOptionPaneUI.java, * javax/swing/plaf/multi/MultiPanelUI.java, * javax/swing/plaf/multi/MultiPopupMenuUI.java, * javax/swing/plaf/multi/MultiProgressBarUI.java, * javax/swing/plaf/multi/MultiRootPaneUI.java, * javax/swing/plaf/multi/MultiScrollBarUI.java, * javax/swing/plaf/multi/MultiScrollPaneUI.java, * javax/swing/plaf/multi/MultiSeparatorUI.java, * javax/swing/plaf/multi/MultiSliderUI.java, * javax/swing/plaf/multi/MultiSpinnerUI.java, * javax/swing/plaf/multi/MultiSplitPaneUI.java, * javax/swing/plaf/multi/MultiTabbedPaneUI.java, * javax/swing/plaf/multi/MultiTableHeaderUI.java, * javax/swing/plaf/multi/MultiTableUI.java, * javax/swing/plaf/multi/MultiTextUI.java, * javax/swing/plaf/multi/MultiToolBarUI.java, * javax/swing/plaf/multi/MultiToolTipUI.java, * javax/swing/plaf/multi/MultiTreeUI.java, * javax/swing/plaf/multi/MultiViewportUI.java, * javax/swing/plaf/synth/SynthGraphicsUtils.java, * javax/swing/plaf/synth/SynthLookAndFeel.java, * javax/swing/plaf/synth/SynthPainter.java, * javax/swing/table/AbstractTableModel.java, * javax/swing/table/DefaultTableCellRenderer.java, * javax/swing/table/DefaultTableColumnModel.java, * javax/swing/table/DefaultTableModel.java, * javax/swing/table/JTableHeader.java, * javax/swing/table/TableCellEditor.java, * javax/swing/table/TableCellRenderer.java, * javax/swing/table/TableColumn.java, * javax/swing/table/TableColumnModel.java, * javax/swing/table/TableModel.java, * javax/swing/text/AbstractDocument.java, * javax/swing/text/AbstractWriter.java, * javax/swing/text/AsyncBoxView.java, * javax/swing/text/AttributeSet.java, * javax/swing/text/BoxView.java, * javax/swing/text/Caret.java, * javax/swing/text/ComponentView.java, * javax/swing/text/CompositeView.java, * javax/swing/text/DefaultCaret.java, * javax/swing/text/DefaultEditorKit.java, * javax/swing/text/DefaultFormatter.java, * javax/swing/text/DefaultFormatterFactory.java, * javax/swing/text/DefaultHighlighter.java, * javax/swing/text/DefaultStyledDocument.java, * javax/swing/text/DocumentFilter.java, * javax/swing/text/EditorKit.java, * javax/swing/text/Element.java, * javax/swing/text/ElementIterator.java, * javax/swing/text/EmptyAttributeSet.java, * javax/swing/text/FieldView.java, * javax/swing/text/FlowView.java, * javax/swing/text/GapContent.java, * javax/swing/text/GlyphView.java, * javax/swing/text/Highlighter.java, * javax/swing/text/InternationalFormatter.java, * javax/swing/text/JTextComponent.java, * javax/swing/text/Keymap.java, * javax/swing/text/LayeredHighlighter.java, * javax/swing/text/LayoutQueue.java, * javax/swing/text/MaskFormatter.java, * javax/swing/text/MutableAttributeSet.java, * javax/swing/text/NavigationFilter.java, * javax/swing/text/NumberFormatter.java, * javax/swing/text/ParagraphView.java, * javax/swing/text/PasswordView.java, * javax/swing/text/PlainDocument.java, * javax/swing/text/PlainView.java, * javax/swing/text/Position.java, * javax/swing/text/Segment.java, * javax/swing/text/SimpleAttributeSet.java, * javax/swing/text/StringContent.java, * javax/swing/text/Style.java, * javax/swing/text/StyleConstants.java, * javax/swing/text/StyleContext.java, * javax/swing/text/StyledDocument.java, * javax/swing/text/StyledEditorKit.java, * javax/swing/text/TabExpander.java, * javax/swing/text/TabSet.java, * javax/swing/text/TabStop.java, * javax/swing/text/TabableView.java, * javax/swing/text/TableView.java, * javax/swing/text/TextAction.java, * javax/swing/text/Utilities.java, * javax/swing/text/View.java, * javax/swing/text/ViewFactory.java, * javax/swing/text/WrappedPlainView.java, * javax/swing/text/html/BRView.java, * javax/swing/text/html/BlockView.java, * javax/swing/text/html/CSS.java, * javax/swing/text/html/CSSBorder.java, * javax/swing/text/html/CSSParser.java, * javax/swing/text/html/FormView.java, * javax/swing/text/html/HRuleView.java, * javax/swing/text/html/HTMLDocument.java, * javax/swing/text/html/HTMLEditorKit.java, * javax/swing/text/html/HTMLWriter.java, * javax/swing/text/html/ImageView.java, * javax/swing/text/html/InlineView.java, * javax/swing/text/html/ListView.java, * javax/swing/text/html/MinimalHTMLWriter.java, * javax/swing/text/html/MultiAttributeSet.java, * javax/swing/text/html/MultiStyle.java, * javax/swing/text/html/ParagraphView.java, * javax/swing/text/html/StyleSheet.java, * javax/swing/text/html/TableView.java, * javax/swing/text/html/ViewAttributeSet.java, * javax/swing/text/html/parser/Entity.java, * javax/swing/text/html/parser/Parser.java, * javax/swing/text/rtf/RTFParser.java, * javax/swing/text/rtf/RTFScanner.java, * javax/swing/tree/AbstractLayoutCache.java, * javax/swing/tree/DefaultMutableTreeNode.java, * javax/swing/tree/DefaultTreeCellEditor.java, * javax/swing/tree/DefaultTreeCellRenderer.java, * javax/swing/tree/DefaultTreeModel.java, * javax/swing/tree/DefaultTreeSelectionModel.java, * javax/swing/tree/ExpandVetoException.java, * javax/swing/tree/FixedHeightLayoutCache.java, * javax/swing/tree/MutableTreeNode.java, * javax/swing/tree/RowMapper.java, * javax/swing/tree/TreeCellEditor.java, * javax/swing/tree/TreeCellRenderer.java, * javax/swing/tree/TreeNode.java, * javax/swing/tree/TreePath.java, * javax/swing/tree/TreeSelectionModel.java, * javax/swing/tree/VariableHeightLayoutCache.java, * javax/swing/undo/AbstractUndoableEdit.java, * javax/swing/undo/CompoundEdit.java, * javax/swing/undo/StateEdit.java, * javax/swing/undo/UndoManager.java, * javax/swing/undo/UndoableEdit.java, * javax/tools/FileObject.java, * javax/transaction/HeuristicCommitException.java, * javax/transaction/HeuristicMixedException.java, * javax/transaction/HeuristicRollbackException.java, * javax/transaction/InvalidTransactionException.java, * javax/transaction/NotSupportedException.java, * javax/transaction/RollbackException.java, * javax/transaction/Status.java, * javax/transaction/Synchronization.java, * javax/transaction/SystemException.java, * javax/transaction/Transaction.java, * javax/transaction/TransactionManager.java, * javax/transaction/TransactionRequiredException.java, * javax/transaction/TransactionRolledbackException.java, * javax/transaction/UserTransaction.java, * javax/transaction/xa/XAException.java, * javax/transaction/xa/XAResource.java, * javax/transaction/xa/Xid.java, * javax/xml/XMLConstants.java, * javax/xml/datatype/DatatypeConfigurationException.java, * javax/xml/datatype/DatatypeConstants.java, * javax/xml/datatype/DatatypeFactory.java, * javax/xml/datatype/Duration.java, * javax/xml/datatype/XMLGregorianCalendar.java, * javax/xml/namespace/NamespaceContext.java, * javax/xml/namespace/QName.java, * javax/xml/parsers/DocumentBuilder.java, * javax/xml/parsers/DocumentBuilderFactory.java, * javax/xml/parsers/FactoryConfigurationError.java, * javax/xml/parsers/ParserConfigurationException.java, * javax/xml/parsers/SAXParser.java, * javax/xml/parsers/SAXParserFactory.java, * javax/xml/stream/EventFilter.java, * javax/xml/stream/FactoryConfigurationError.java, * javax/xml/stream/Location.java, * javax/xml/stream/StreamFilter.java, * javax/xml/stream/XMLEventFactory.java, * javax/xml/stream/XMLEventReader.java, * javax/xml/stream/XMLEventWriter.java, * javax/xml/stream/XMLInputFactory.java, * javax/xml/stream/XMLOutputFactory.java, * javax/xml/stream/XMLReporter.java, * javax/xml/stream/XMLResolver.java, * javax/xml/stream/XMLStreamConstants.java, * javax/xml/stream/XMLStreamException.java, * javax/xml/stream/XMLStreamReader.java, * javax/xml/stream/XMLStreamWriter.java, * javax/xml/stream/events/Attribute.java, * javax/xml/stream/events/Characters.java, * javax/xml/stream/events/Comment.java, * javax/xml/stream/events/DTD.java, * javax/xml/stream/events/EndDocument.java, * javax/xml/stream/events/EndElement.java, * javax/xml/stream/events/EntityDeclaration.java, * javax/xml/stream/events/EntityReference.java, * javax/xml/stream/events/Namespace.java, * javax/xml/stream/events/NotationDeclaration.java, * javax/xml/stream/events/ProcessingInstruction.java, * javax/xml/stream/events/StartDocument.java, * javax/xml/stream/events/StartElement.java, * javax/xml/stream/events/XMLEvent.java, * javax/xml/stream/util/EventReaderDelegate.java, * javax/xml/stream/util/StreamReaderDelegate.java, * javax/xml/stream/util/XMLEventAllocator.java, * javax/xml/stream/util/XMLEventConsumer.java, * javax/xml/transform/ErrorListener.java, * javax/xml/transform/OutputKeys.java, * javax/xml/transform/Result.java, * javax/xml/transform/Source.java, * javax/xml/transform/SourceLocator.java, * javax/xml/transform/Templates.java, * javax/xml/transform/Transformer.java, * javax/xml/transform/TransformerConfigurationException.java, * javax/xml/transform/TransformerException.java, * javax/xml/transform/TransformerFactory.java, * javax/xml/transform/TransformerFactoryConfigurationError.java, * javax/xml/transform/URIResolver.java, * javax/xml/transform/dom/DOMLocator.java, * javax/xml/transform/dom/DOMResult.java, * javax/xml/transform/dom/DOMSource.java, * javax/xml/transform/sax/SAXResult.java, * javax/xml/transform/sax/SAXSource.java, * javax/xml/transform/sax/SAXTransformerFactory.java, * javax/xml/transform/sax/TemplatesHandler.java, * javax/xml/transform/sax/TransformerHandler.java, * javax/xml/transform/stream/StreamResult.java, * javax/xml/transform/stream/StreamSource.java, * javax/xml/validation/Schema.java, * javax/xml/validation/SchemaFactory.java, * javax/xml/validation/SchemaFactoryLoader.java, * javax/xml/validation/TypeInfoProvider.java, * javax/xml/validation/Validator.java, * javax/xml/validation/ValidatorHandler.java, * javax/xml/xpath/XPath.java, * javax/xml/xpath/XPathConstants.java, * javax/xml/xpath/XPathException.java, * javax/xml/xpath/XPathExpression.java, * javax/xml/xpath/XPathExpressionException.java, * javax/xml/xpath/XPathFactory.java, * javax/xml/xpath/XPathFactoryConfigurationException.java, * javax/xml/xpath/XPathFunction.java, * javax/xml/xpath/XPathFunctionException.java, * javax/xml/xpath/XPathFunctionResolver.java, * javax/xml/xpath/XPathVariableResolver.java, * org/omg/CORBA/ARG_IN.java, * org/omg/CORBA/ARG_INOUT.java, * org/omg/CORBA/ARG_OUT.java, * org/omg/CORBA/AnySeqHolder.java, * org/omg/CORBA/BAD_CONTEXT.java, * org/omg/CORBA/BAD_INV_ORDER.java, * org/omg/CORBA/BAD_OPERATION.java, * org/omg/CORBA/BAD_PARAM.java, * org/omg/CORBA/BAD_POLICY.java, * org/omg/CORBA/BAD_POLICY_TYPE.java, * org/omg/CORBA/BAD_POLICY_VALUE.java, * org/omg/CORBA/BAD_TYPECODE.java, * org/omg/CORBA/COMM_FAILURE.java, * org/omg/CORBA/CTX_RESTRICT_SCOPE.java, * org/omg/CORBA/CompletionStatus.java, * org/omg/CORBA/CompletionStatusHelper.java, * org/omg/CORBA/Context.java, * org/omg/CORBA/Current.java, * org/omg/CORBA/CurrentHelper.java, * org/omg/CORBA/CurrentHolder.java, * org/omg/CORBA/CustomMarshal.java, * org/omg/CORBA/CustomValue.java, * org/omg/CORBA/DATA_CONVERSION.java, * org/omg/CORBA/DataInputStream.java, * org/omg/CORBA/DataOutputStream.java, * org/omg/CORBA/DefinitionKind.java, * org/omg/CORBA/DefinitionKindHelper.java, * org/omg/CORBA/DynamicImplementation.java, * org/omg/CORBA/FREE_MEM.java, * org/omg/CORBA/FieldNameHelper.java, * org/omg/CORBA/IDLTypeHelper.java, * org/omg/CORBA/IMP_LIMIT.java, * org/omg/CORBA/INITIALIZE.java, * org/omg/CORBA/INTERNAL.java, * org/omg/CORBA/INTF_REPOS.java, * org/omg/CORBA/INVALID_TRANSACTION.java, * org/omg/CORBA/INV_FLAG.java, * org/omg/CORBA/INV_IDENT.java, * org/omg/CORBA/INV_OBJREF.java, * org/omg/CORBA/INV_POLICY.java, * org/omg/CORBA/IRObject.java, * org/omg/CORBA/IRObjectOperations.java, * org/omg/CORBA/IdentifierHelper.java, * org/omg/CORBA/LocalObject.java, * org/omg/CORBA/LongSeqHolder.java, * org/omg/CORBA/MARSHAL.java, * org/omg/CORBA/NO_IMPLEMENT.java, * org/omg/CORBA/NO_MEMORY.java, * org/omg/CORBA/NO_PERMISSION.java, * org/omg/CORBA/NO_RESOURCES.java, * org/omg/CORBA/NO_RESPONSE.java, * org/omg/CORBA/NVList.java, * org/omg/CORBA/OBJECT_NOT_EXIST.java, * org/omg/CORBA/OBJ_ADAPTER.java, * org/omg/CORBA/OMGVMCID.java, * org/omg/CORBA/ORB.java, * org/omg/CORBA/ObjectHelper.java, * org/omg/CORBA/ObjectHolder.java, * org/omg/CORBA/PERSIST_STORE.java, * org/omg/CORBA/ParameterMode.java, * org/omg/CORBA/ParameterModeHelper.java, * org/omg/CORBA/PolicyErrorCodeHelper.java, * org/omg/CORBA/PolicyErrorHelper.java, * org/omg/CORBA/PolicyErrorHolder.java, * org/omg/CORBA/PolicyHelper.java, * org/omg/CORBA/PolicyHolder.java, * org/omg/CORBA/PolicyListHelper.java, * org/omg/CORBA/PolicyListHolder.java, * org/omg/CORBA/PolicyOperations.java, * org/omg/CORBA/PolicyTypeHelper.java, * org/omg/CORBA/RepositoryIdHelper.java, * org/omg/CORBA/Request.java, * org/omg/CORBA/ServiceDetailHelper.java, * org/omg/CORBA/ServiceInformationHelper.java, * org/omg/CORBA/SetOverrideTypeHelper.java, * org/omg/CORBA/StringValueHelper.java, * org/omg/CORBA/StructMember.java, * org/omg/CORBA/StructMemberHelper.java, * org/omg/CORBA/SystemException.java, * org/omg/CORBA/TCKind.java, * org/omg/CORBA/TRANSACTION_REQUIRED.java, * org/omg/CORBA/TRANSACTION_ROLLEDBACK.java, * org/omg/CORBA/TRANSIENT.java, * org/omg/CORBA/TypeCode.java, * org/omg/CORBA/TypeCodePackage/BadKind.java, * org/omg/CORBA/TypeCodePackage/Bounds.java, * org/omg/CORBA/UNSUPPORTED_POLICY.java, * org/omg/CORBA/UNSUPPORTED_POLICY_VALUE.java, * org/omg/CORBA/UnionMemberHelper.java, * org/omg/CORBA/UnknownUserException.java, * org/omg/CORBA/UnknownUserExceptionHolder.java, * org/omg/CORBA/ValueBaseHelper.java, * org/omg/CORBA/ValueBaseHolder.java, * org/omg/CORBA/ValueMemberHelper.java, * org/omg/CORBA/VersionSpecHelper.java, * org/omg/CORBA/VisibilityHelper.java, * org/omg/CORBA/WStringValueHelper.java, * org/omg/CORBA/WrongTransactionHelper.java, * org/omg/CORBA/WrongTransactionHolder.java, * org/omg/CORBA/_IDLTypeStub.java, * org/omg/CORBA/_PolicyStub.java, * org/omg/CORBA/portable/CustomValue.java, * org/omg/CORBA/portable/Delegate.java, * org/omg/CORBA/portable/ObjectImpl.java, * org/omg/CORBA/portable/StreamableValue.java, * org/omg/CORBA/portable/ValueBase.java, * org/omg/CORBA_2_3/ORB.java, * org/omg/CORBA_2_3/portable/Delegate.java, * org/omg/CORBA_2_3/portable/InputStream.java, * org/omg/CORBA_2_3/portable/ObjectImpl.java, * org/omg/CORBA_2_3/portable/OutputStream.java, * org/omg/CosNaming/BindingHelper.java, * org/omg/CosNaming/BindingIterator.java, * org/omg/CosNaming/BindingIteratorHelper.java, * org/omg/CosNaming/BindingIteratorOperations.java, * org/omg/CosNaming/BindingIteratorPOA.java, * org/omg/CosNaming/BindingType.java, * org/omg/CosNaming/BindingTypeHelper.java, * org/omg/CosNaming/IstringHelper.java, * org/omg/CosNaming/NameComponentHelper.java, * org/omg/CosNaming/NameHelper.java, * org/omg/CosNaming/NamingContext.java, * org/omg/CosNaming/NamingContextExtHelper.java, * org/omg/CosNaming/NamingContextExtPOA.java, * org/omg/CosNaming/NamingContextExtPackage/InvalidAddress.java, * org/omg/CosNaming/NamingContextHelper.java, * org/omg/CosNaming/NamingContextPOA.java, * org/omg/CosNaming/NamingContextPackage/AlreadyBound.java, * org/omg/CosNaming/NamingContextPackage/CannotProceed.java, * org/omg/CosNaming/NamingContextPackage/CannotProceedHelper.java, * org/omg/CosNaming/NamingContextPackage/InvalidName.java, * org/omg/CosNaming/NamingContextPackage/InvalidNameHelper.java, * org/omg/CosNaming/NamingContextPackage/NotEmptyHelper.java, * org/omg/CosNaming/NamingContextPackage/NotFound.java, * org/omg/CosNaming/NamingContextPackage/NotFoundHelper.java, * org/omg/CosNaming/NamingContextPackage/NotFoundReason.java, * org/omg/CosNaming/NamingContextPackage/NotFoundReasonHelper.java, * org/omg/CosNaming/NamingContextPackage/NotFoundReasonHolder.java, * org/omg/CosNaming/_BindingIteratorImplBase.java, * org/omg/CosNaming/_BindingIteratorStub.java, * org/omg/CosNaming/_NamingContextExtStub.java, * org/omg/CosNaming/_NamingContextStub.java, * org/omg/Dynamic/Parameter.java, * org/omg/DynamicAny/AnySeqHelper.java, * org/omg/DynamicAny/DynAny.java, * org/omg/DynamicAny/DynAnyFactoryHelper.java, * org/omg/DynamicAny/DynAnyFactoryPackage/InconsistentTypeCode.java, * org/omg/DynamicAny/DynAnyFactoryPackage/InconsistentTypeCodeHelper.java, * org/omg/DynamicAny/DynAnyHelper.java, * org/omg/DynamicAny/DynAnyPackage/InvalidValue.java, * org/omg/DynamicAny/DynAnyPackage/InvalidValueHelper.java, * org/omg/DynamicAny/DynAnyPackage/TypeMismatch.java, * org/omg/DynamicAny/DynAnyPackage/TypeMismatchHelper.java, * org/omg/DynamicAny/DynAnySeqHelper.java, * org/omg/DynamicAny/DynArrayHelper.java, * org/omg/DynamicAny/DynEnumHelper.java, * org/omg/DynamicAny/DynFixedHelper.java, * org/omg/DynamicAny/DynSequenceHelper.java, * org/omg/DynamicAny/DynStructHelper.java, * org/omg/DynamicAny/DynUnionHelper.java, * org/omg/DynamicAny/DynValueBox.java, * org/omg/DynamicAny/DynValueCommonOperations.java, * org/omg/DynamicAny/DynValueHelper.java, * org/omg/DynamicAny/FieldNameHelper.java, * org/omg/DynamicAny/NameDynAnyPairHelper.java, * org/omg/DynamicAny/NameDynAnyPairSeqHelper.java, * org/omg/DynamicAny/NameValuePair.java, * org/omg/DynamicAny/NameValuePairHelper.java, * org/omg/DynamicAny/NameValuePairSeqHelper.java, * org/omg/DynamicAny/_DynAnyFactoryStub.java, * org/omg/DynamicAny/_DynAnyStub.java, * org/omg/DynamicAny/_DynArrayStub.java, * org/omg/DynamicAny/_DynEnumStub.java, * org/omg/DynamicAny/_DynFixedStub.java, * org/omg/DynamicAny/_DynSequenceStub.java, * org/omg/DynamicAny/_DynStructStub.java, * org/omg/DynamicAny/_DynUnionStub.java, * org/omg/DynamicAny/_DynValueStub.java, * org/omg/IOP/Codec.java, * org/omg/IOP/CodecFactory.java, * org/omg/IOP/CodecFactoryHelper.java, * org/omg/IOP/CodecFactoryOperations.java, * org/omg/IOP/CodecFactoryPackage/UnknownEncoding.java, * org/omg/IOP/CodecFactoryPackage/UnknownEncodingHelper.java, * org/omg/IOP/CodecOperations.java, * org/omg/IOP/CodecPackage/FormatMismatch.java, * org/omg/IOP/CodecPackage/FormatMismatchHelper.java, * org/omg/IOP/CodecPackage/InvalidTypeForEncoding.java, * org/omg/IOP/CodecPackage/InvalidTypeForEncodingHelper.java, * org/omg/IOP/CodecPackage/TypeMismatch.java, * org/omg/IOP/CodecPackage/TypeMismatchHelper.java, * org/omg/IOP/ComponentIdHelper.java, * org/omg/IOP/Encoding.java, * org/omg/IOP/IOR.java, * org/omg/IOP/IORHelper.java, * org/omg/IOP/IORHolder.java, * org/omg/IOP/MultipleComponentProfileHelper.java, * org/omg/IOP/MultipleComponentProfileHolder.java, * org/omg/IOP/ProfileIdHelper.java, * org/omg/IOP/ServiceContext.java, * org/omg/IOP/ServiceContextHelper.java, * org/omg/IOP/ServiceContextHolder.java, * org/omg/IOP/ServiceContextListHelper.java, * org/omg/IOP/ServiceContextListHolder.java, * org/omg/IOP/ServiceIdHelper.java, * org/omg/IOP/TaggedComponent.java, * org/omg/IOP/TaggedComponentHelper.java, * org/omg/IOP/TaggedComponentHolder.java, * org/omg/IOP/TaggedProfile.java, * org/omg/IOP/TaggedProfileHelper.java, * org/omg/IOP/TaggedProfileHolder.java, * org/omg/IOP/TransactionService.java, * org/omg/Messaging/SYNC_WITH_TRANSPORT.java, * org/omg/Messaging/SyncScopeHelper.java, * org/omg/PortableInterceptor/AdapterManagerIdHelper.java, * org/omg/PortableInterceptor/AdapterNameHelper.java, * org/omg/PortableInterceptor/AdapterStateHelper.java, * org/omg/PortableInterceptor/ClientRequestInfo.java, * org/omg/PortableInterceptor/ClientRequestInfoOperations.java, * org/omg/PortableInterceptor/ClientRequestInterceptor.java, * org/omg/PortableInterceptor/ClientRequestInterceptorOperations.java, * org/omg/PortableInterceptor/Current.java, * org/omg/PortableInterceptor/CurrentHelper.java, * org/omg/PortableInterceptor/CurrentOperations.java, * org/omg/PortableInterceptor/ForwardRequest.java, * org/omg/PortableInterceptor/ForwardRequestHelper.java, * org/omg/PortableInterceptor/IORInfo.java, * org/omg/PortableInterceptor/IORInfoOperations.java, * org/omg/PortableInterceptor/IORInterceptor.java, * org/omg/PortableInterceptor/IORInterceptorOperations.java, * org/omg/PortableInterceptor/IORInterceptor_3_0.java, * org/omg/PortableInterceptor/IORInterceptor_3_0Helper.java, * org/omg/PortableInterceptor/IORInterceptor_3_0Holder.java, * org/omg/PortableInterceptor/IORInterceptor_3_0Operations.java, * org/omg/PortableInterceptor/Interceptor.java, * org/omg/PortableInterceptor/InterceptorOperations.java, * org/omg/PortableInterceptor/InvalidSlot.java, * org/omg/PortableInterceptor/InvalidSlotHelper.java, * org/omg/PortableInterceptor/LOCATION_FORWARD.java, * org/omg/PortableInterceptor/ORBIdHelper.java, * org/omg/PortableInterceptor/ORBInitInfo.java, * org/omg/PortableInterceptor/ORBInitInfoOperations.java, * org/omg/PortableInterceptor/ORBInitInfoPackage/DuplicateName.java, * org/omg/PortableInterceptor/ORBInitInfoPackage/DuplicateNameHelper.java, * org/omg/PortableInterceptor/ORBInitInfoPackage/InvalidName.java, * org/omg/PortableInterceptor/ORBInitInfoPackage/InvalidNameHelper.java, * org/omg/PortableInterceptor/ORBInitInfoPackage/ObjectIdHelper.java, * org/omg/PortableInterceptor/ORBInitializer.java, * org/omg/PortableInterceptor/ORBInitializerOperations.java, * org/omg/PortableInterceptor/ObjectIdHelper.java, * org/omg/PortableInterceptor/ObjectReferenceFactory.java, * org/omg/PortableInterceptor/ObjectReferenceFactoryHelper.java, * org/omg/PortableInterceptor/ObjectReferenceFactoryHolder.java, * org/omg/PortableInterceptor/ObjectReferenceTemplate.java, * org/omg/PortableInterceptor/ObjectReferenceTemplateHelper.java, * org/omg/PortableInterceptor/ObjectReferenceTemplateHolder.java, * org/omg/PortableInterceptor/ObjectReferenceTemplateSeqHelper.java, * org/omg/PortableInterceptor/ObjectReferenceTemplateSeqHolder.java, * org/omg/PortableInterceptor/PolicyFactory.java, * org/omg/PortableInterceptor/PolicyFactoryOperations.java, * org/omg/PortableInterceptor/RequestInfo.java, * org/omg/PortableInterceptor/RequestInfoOperations.java, * org/omg/PortableInterceptor/SUCCESSFUL.java, * org/omg/PortableInterceptor/SYSTEM_EXCEPTION.java, * org/omg/PortableInterceptor/ServerIdHelper.java, * org/omg/PortableInterceptor/ServerRequestInfo.java, * org/omg/PortableInterceptor/ServerRequestInfoOperations.java, * org/omg/PortableInterceptor/ServerRequestInterceptor.java, * org/omg/PortableInterceptor/ServerRequestInterceptorOperations.java, * org/omg/PortableInterceptor/TRANSPORT_RETRY.java, * org/omg/PortableInterceptor/USER_EXCEPTION.java, * org/omg/PortableInterceptor/_IORInterceptor_3_0Stub.java, * org/omg/PortableServer/AdapterActivator.java, * org/omg/PortableServer/AdapterActivatorOperations.java, * org/omg/PortableServer/Current.java, * org/omg/PortableServer/CurrentHelper.java, * org/omg/PortableServer/CurrentOperations.java, * org/omg/PortableServer/CurrentPackage/NoContext.java, * org/omg/PortableServer/CurrentPackage/NoContextHelper.java, * org/omg/PortableServer/DynamicImplementation.java, * org/omg/PortableServer/ForwardRequest.java, * org/omg/PortableServer/ForwardRequestHelper.java, * org/omg/PortableServer/ID_ASSIGNMENT_POLICY_ID.java, * org/omg/PortableServer/ID_UNIQUENESS_POLICY_ID.java, * org/omg/PortableServer/IMPLICIT_ACTIVATION_POLICY_ID.java, * org/omg/PortableServer/IdAssignmentPolicy.java, * org/omg/PortableServer/IdAssignmentPolicyOperations.java, * org/omg/PortableServer/IdAssignmentPolicyValue.java, * org/omg/PortableServer/IdUniquenessPolicy.java, * org/omg/PortableServer/IdUniquenessPolicyOperations.java, * org/omg/PortableServer/IdUniquenessPolicyValue.java, * org/omg/PortableServer/ImplicitActivationPolicy.java, * org/omg/PortableServer/ImplicitActivationPolicyOperations.java, * org/omg/PortableServer/ImplicitActivationPolicyValue.java, * org/omg/PortableServer/LifespanPolicy.java, * org/omg/PortableServer/LifespanPolicyOperations.java, * org/omg/PortableServer/LifespanPolicyValue.java, * org/omg/PortableServer/POA.java, * org/omg/PortableServer/POAHelper.java, * org/omg/PortableServer/POAManager.java, * org/omg/PortableServer/POAManagerOperations.java, * org/omg/PortableServer/POAManagerPackage/AdapterInactive.java, * org/omg/PortableServer/POAManagerPackage/AdapterInactiveHelper.java, * org/omg/PortableServer/POAManagerPackage/State.java, * org/omg/PortableServer/POAOperations.java, * org/omg/PortableServer/POAPackage/AdapterAlreadyExists.java, * org/omg/PortableServer/POAPackage/AdapterAlreadyExistsHelper.java, * org/omg/PortableServer/POAPackage/AdapterNonExistent.java, * org/omg/PortableServer/POAPackage/AdapterNonExistentHelper.java, * org/omg/PortableServer/POAPackage/InvalidPolicy.java, * org/omg/PortableServer/POAPackage/InvalidPolicyHelper.java, * org/omg/PortableServer/POAPackage/NoServant.java, * org/omg/PortableServer/POAPackage/NoServantHelper.java, * org/omg/PortableServer/POAPackage/ObjectAlreadyActive.java, * org/omg/PortableServer/POAPackage/ObjectAlreadyActiveHelper.java, * org/omg/PortableServer/POAPackage/ObjectNotActive.java, * org/omg/PortableServer/POAPackage/ObjectNotActiveHelper.java, * org/omg/PortableServer/POAPackage/ServantAlreadyActive.java, * org/omg/PortableServer/POAPackage/ServantAlreadyActiveHelper.java, * org/omg/PortableServer/POAPackage/ServantNotActive.java, * org/omg/PortableServer/POAPackage/ServantNotActiveHelper.java, * org/omg/PortableServer/POAPackage/WrongAdapter.java, * org/omg/PortableServer/POAPackage/WrongAdapterHelper.java, * org/omg/PortableServer/POAPackage/WrongPolicy.java, * org/omg/PortableServer/POAPackage/WrongPolicyHelper.java, * org/omg/PortableServer/RequestProcessingPolicy.java, * org/omg/PortableServer/RequestProcessingPolicyOperations.java, * org/omg/PortableServer/RequestProcessingPolicyValue.java, * org/omg/PortableServer/Servant.java, * org/omg/PortableServer/ServantActivator.java, * org/omg/PortableServer/ServantActivatorHelper.java, * org/omg/PortableServer/ServantActivatorOperations.java, * org/omg/PortableServer/ServantActivatorPOA.java, * org/omg/PortableServer/ServantLocator.java, * org/omg/PortableServer/ServantLocatorHelper.java, * org/omg/PortableServer/ServantLocatorOperations.java, * org/omg/PortableServer/ServantLocatorPOA.java, * org/omg/PortableServer/ServantLocatorPackage/CookieHolder.java, * org/omg/PortableServer/ServantManager.java, * org/omg/PortableServer/ServantManagerOperations.java, * org/omg/PortableServer/ServantRetentionPolicy.java, * org/omg/PortableServer/ServantRetentionPolicyOperations.java, * org/omg/PortableServer/ServantRetentionPolicyValue.java, * org/omg/PortableServer/ThreadPolicy.java, * org/omg/PortableServer/ThreadPolicyOperations.java, * org/omg/PortableServer/ThreadPolicyValue.java, * org/omg/PortableServer/_ServantActivatorStub.java, * org/omg/PortableServer/_ServantLocatorStub.java, * org/omg/PortableServer/portable/Delegate.java, * org/omg/SendingContext/RunTime.java, * org/omg/SendingContext/RunTimeOperations.java, * sun/misc/Service.java, * sun/misc/ServiceConfigurationError.java, * sun/reflect/annotation/AnnotationInvocationHandler.java, * sun/reflect/annotation/AnnotationParser.java, * sun/reflect/annotation/AnnotationType.java, * sun/reflect/annotation/EnumConstantNotPresentExceptionProxy.java, * sun/reflect/annotation/ExceptionProxy.java, * tools/com/sun/javadoc/ClassDoc.java, * tools/com/sun/javadoc/ConstructorDoc.java, * tools/com/sun/javadoc/Doc.java, * tools/com/sun/javadoc/DocErrorReporter.java, * tools/com/sun/javadoc/Doclet.java, * tools/com/sun/javadoc/ExecutableMemberDoc.java, * tools/com/sun/javadoc/FieldDoc.java, * tools/com/sun/javadoc/MemberDoc.java, * tools/com/sun/javadoc/MethodDoc.java, * tools/com/sun/javadoc/PackageDoc.java, * tools/com/sun/javadoc/ParamTag.java, * tools/com/sun/javadoc/Parameter.java, * tools/com/sun/javadoc/ProgramElementDoc.java, * tools/com/sun/javadoc/RootDoc.java, * tools/com/sun/javadoc/SeeTag.java, * tools/com/sun/javadoc/SerialFieldTag.java, * tools/com/sun/javadoc/Tag.java, * tools/com/sun/javadoc/ThrowsTag.java, * tools/com/sun/javadoc/Type.java, * tools/com/sun/javadoc/TypeVariable.java, * tools/com/sun/tools/javadoc/Main.java, * tools/com/sun/tools/javah/Main.java, * tools/external/asm/org/objectweb/asm/AnnotationVisitor.java, * tools/external/asm/org/objectweb/asm/AnnotationWriter.java, * tools/external/asm/org/objectweb/asm/Attribute.java, * tools/external/asm/org/objectweb/asm/ByteVector.java, * tools/external/asm/org/objectweb/asm/ClassAdapter.java, * tools/external/asm/org/objectweb/asm/ClassReader.java, * tools/external/asm/org/objectweb/asm/ClassVisitor.java, * tools/external/asm/org/objectweb/asm/ClassWriter.java, * tools/external/asm/org/objectweb/asm/Edge.java, * tools/external/asm/org/objectweb/asm/FieldVisitor.java, * tools/external/asm/org/objectweb/asm/FieldWriter.java, * tools/external/asm/org/objectweb/asm/Handler.java, * tools/external/asm/org/objectweb/asm/Item.java, * tools/external/asm/org/objectweb/asm/Label.java, * tools/external/asm/org/objectweb/asm/MethodAdapter.java, * tools/external/asm/org/objectweb/asm/MethodVisitor.java, * tools/external/asm/org/objectweb/asm/MethodWriter.java, * tools/external/asm/org/objectweb/asm/Opcodes.java, * tools/external/asm/org/objectweb/asm/Type.java, * tools/external/asm/org/objectweb/asm/attrs/StackMapAttribute.java, * tools/external/asm/org/objectweb/asm/attrs/StackMapFrame.java, * tools/external/asm/org/objectweb/asm/attrs/StackMapTableAttribute.java, * tools/external/asm/org/objectweb/asm/attrs/StackMapType.java, * tools/external/asm/org/objectweb/asm/commons/AdviceAdapter.java, * tools/external/asm/org/objectweb/asm/commons/EmptyVisitor.java, * tools/external/asm/org/objectweb/asm/commons/GeneratorAdapter.java, * tools/external/asm/org/objectweb/asm/commons/LocalVariablesSorter.java, * tools/external/asm/org/objectweb/asm/commons/Method.java, * tools/external/asm/org/objectweb/asm/commons/SerialVersionUIDAdder.java, * tools/external/asm/org/objectweb/asm/commons/StaticInitMerger.java, * tools/external/asm/org/objectweb/asm/commons/TableSwitchGenerator.java, * tools/external/asm/org/objectweb/asm/optimizer/AnnotationConstantsCollector.java, * tools/external/asm/org/objectweb/asm/optimizer/ClassConstantsCollector.java, * tools/external/asm/org/objectweb/asm/optimizer/ClassOptimizer.java, * tools/external/asm/org/objectweb/asm/optimizer/Constant.java, * tools/external/asm/org/objectweb/asm/optimizer/ConstantPool.java, * tools/external/asm/org/objectweb/asm/optimizer/FieldConstantsCollector.java, * tools/external/asm/org/objectweb/asm/optimizer/JarOptimizer.java, * tools/external/asm/org/objectweb/asm/optimizer/MethodConstantsCollector.java, * tools/external/asm/org/objectweb/asm/optimizer/MethodOptimizer.java, * tools/external/asm/org/objectweb/asm/optimizer/NameMapping.java, * tools/external/asm/org/objectweb/asm/optimizer/Shrinker.java, * tools/external/asm/org/objectweb/asm/signature/SignatureReader.java, * tools/external/asm/org/objectweb/asm/signature/SignatureVisitor.java, * tools/external/asm/org/objectweb/asm/signature/SignatureWriter.java, * tools/external/asm/org/objectweb/asm/tree/AbstractInsnNode.java, * tools/external/asm/org/objectweb/asm/tree/AnnotationNode.java, * tools/external/asm/org/objectweb/asm/tree/ClassNode.java, * tools/external/asm/org/objectweb/asm/tree/FieldInsnNode.java, * tools/external/asm/org/objectweb/asm/tree/FieldNode.java, * tools/external/asm/org/objectweb/asm/tree/IincInsnNode.java, * tools/external/asm/org/objectweb/asm/tree/InnerClassNode.java, * tools/external/asm/org/objectweb/asm/tree/InsnNode.java, * tools/external/asm/org/objectweb/asm/tree/IntInsnNode.java, * tools/external/asm/org/objectweb/asm/tree/JumpInsnNode.java, * tools/external/asm/org/objectweb/asm/tree/LabelNode.java, * tools/external/asm/org/objectweb/asm/tree/LdcInsnNode.java, * tools/external/asm/org/objectweb/asm/tree/LineNumberNode.java, * tools/external/asm/org/objectweb/asm/tree/LocalVariableNode.java, * tools/external/asm/org/objectweb/asm/tree/LookupSwitchInsnNode.java, * tools/external/asm/org/objectweb/asm/tree/MemberNode.java, * tools/external/asm/org/objectweb/asm/tree/MethodInsnNode.java, * tools/external/asm/org/objectweb/asm/tree/MethodNode.java, * tools/external/asm/org/objectweb/asm/tree/MultiANewArrayInsnNode.java, * tools/external/asm/org/objectweb/asm/tree/TableSwitchInsnNode.java, * tools/external/asm/org/objectweb/asm/tree/TryCatchBlockNode.java, * tools/external/asm/org/objectweb/asm/tree/TypeInsnNode.java, * tools/external/asm/org/objectweb/asm/tree/VarInsnNode.java, * tools/external/asm/org/objectweb/asm/tree/analysis/Analyzer.java, * tools/external/asm/org/objectweb/asm/tree/analysis/AnalyzerException.java, * tools/external/asm/org/objectweb/asm/tree/analysis/BasicInterpreter.java, * tools/external/asm/org/objectweb/asm/tree/analysis/BasicValue.java, * tools/external/asm/org/objectweb/asm/tree/analysis/BasicVerifier.java, * tools/external/asm/org/objectweb/asm/tree/analysis/DataflowInterpreter.java, * tools/external/asm/org/objectweb/asm/tree/analysis/DataflowValue.java, * tools/external/asm/org/objectweb/asm/tree/analysis/Frame.java, * tools/external/asm/org/objectweb/asm/tree/analysis/IntMap.java, * tools/external/asm/org/objectweb/asm/tree/analysis/Interpreter.java, * tools/external/asm/org/objectweb/asm/tree/analysis/SimpleVerifier.java, * tools/external/asm/org/objectweb/asm/tree/analysis/SmallSet.java, * tools/external/asm/org/objectweb/asm/tree/analysis/Subroutine.java, * tools/external/asm/org/objectweb/asm/tree/analysis/Value.java, * tools/external/asm/org/objectweb/asm/util/ASMifierAbstractVisitor.java, * tools/external/asm/org/objectweb/asm/util/ASMifierAnnotationVisitor.java, * tools/external/asm/org/objectweb/asm/util/ASMifierClassVisitor.java, * tools/external/asm/org/objectweb/asm/util/ASMifierFieldVisitor.java, * tools/external/asm/org/objectweb/asm/util/ASMifierMethodVisitor.java, * tools/external/asm/org/objectweb/asm/util/AbstractVisitor.java, * tools/external/asm/org/objectweb/asm/util/CheckAnnotationAdapter.java, * tools/external/asm/org/objectweb/asm/util/CheckClassAdapter.java, * tools/external/asm/org/objectweb/asm/util/CheckMethodAdapter.java, * tools/external/asm/org/objectweb/asm/util/TraceAbstractVisitor.java, * tools/external/asm/org/objectweb/asm/util/TraceAnnotationVisitor.java, * tools/external/asm/org/objectweb/asm/util/TraceClassVisitor.java, * tools/external/asm/org/objectweb/asm/util/TraceFieldVisitor.java, * tools/external/asm/org/objectweb/asm/util/TraceMethodVisitor.java, * tools/external/asm/org/objectweb/asm/util/TraceSignatureVisitor.java, * tools/external/asm/org/objectweb/asm/util/attrs/ASMStackMapAttribute.java, * tools/external/asm/org/objectweb/asm/util/attrs/ASMStackMapTableAttribute.java, * tools/external/asm/org/objectweb/asm/util/attrs/ASMifiable.java, * tools/external/asm/org/objectweb/asm/util/attrs/Traceable.java, * tools/external/asm/org/objectweb/asm/xml/ASMContentHandler.java, * tools/external/asm/org/objectweb/asm/xml/Processor.java, * tools/external/asm/org/objectweb/asm/xml/SAXAdapter.java, * tools/external/asm/org/objectweb/asm/xml/SAXAnnotationAdapter.java, * tools/external/asm/org/objectweb/asm/xml/SAXClassAdapter.java, * tools/external/asm/org/objectweb/asm/xml/SAXCodeAdapter.java, * tools/external/asm/org/objectweb/asm/xml/SAXFieldAdapter.java, * tools/generated/gnu/classpath/tools/gjdoc/expr/JavaLexer.java, * tools/generated/gnu/classpath/tools/gjdoc/expr/JavaRecognizer.java, * tools/generated/gnu/classpath/tools/gjdoc/expr/JavaTokenTypes.java, * tools/gnu/classpath/tools/FileSystemClassLoader.java, * tools/gnu/classpath/tools/IOToolkit.java, * tools/gnu/classpath/tools/MalformedInputEvent.java, * tools/gnu/classpath/tools/MalformedInputListener.java, * tools/gnu/classpath/tools/NotifyingInputStreamReader.java, * tools/gnu/classpath/tools/StringToolkit.java, * tools/gnu/classpath/tools/appletviewer/AppletSecurityManager.java, * tools/gnu/classpath/tools/appletviewer/AppletTag.java, * tools/gnu/classpath/tools/appletviewer/CommonAppletContext.java, * tools/gnu/classpath/tools/appletviewer/CommonAppletStub.java, * tools/gnu/classpath/tools/appletviewer/Main.java, * tools/gnu/classpath/tools/appletviewer/PluginAppletViewer.java, * tools/gnu/classpath/tools/appletviewer/PluginAppletWindow.java, * tools/gnu/classpath/tools/appletviewer/StandaloneAppletViewer.java, * tools/gnu/classpath/tools/appletviewer/StandaloneAppletWindow.java, * tools/gnu/classpath/tools/appletviewer/TagParser.java, * tools/gnu/classpath/tools/common/CallbackUtil.java, * tools/gnu/classpath/tools/common/ClasspathToolParser.java, * tools/gnu/classpath/tools/common/Persistent.java, * tools/gnu/classpath/tools/common/ProviderUtil.java, * tools/gnu/classpath/tools/common/SecurityProviderInfo.java, * tools/gnu/classpath/tools/doclets/AbstractDoclet.java, * tools/gnu/classpath/tools/doclets/DocletConfigurationException.java, * tools/gnu/classpath/tools/doclets/DocletOption.java, * tools/gnu/classpath/tools/doclets/DocletOptionColonSeparated.java, * tools/gnu/classpath/tools/doclets/DocletOptionFile.java, * tools/gnu/classpath/tools/doclets/DocletOptionFlag.java, * tools/gnu/classpath/tools/doclets/DocletOptionPackageWildcard.java, * tools/gnu/classpath/tools/doclets/DocletOptionString.java, * tools/gnu/classpath/tools/doclets/InlineTagRenderer.java, * tools/gnu/classpath/tools/doclets/InvalidPackageWildcardException.java, * tools/gnu/classpath/tools/doclets/PackageGroup.java, * tools/gnu/classpath/tools/doclets/PackageMatcher.java, * tools/gnu/classpath/tools/doclets/StandardTaglet.java, * tools/gnu/classpath/tools/doclets/TagletPrinter.java, * tools/gnu/classpath/tools/doclets/debugdoclet/DebugDoclet.java, * tools/gnu/classpath/tools/doclets/htmldoclet/CssClass.java, * tools/gnu/classpath/tools/doclets/htmldoclet/ExternalDocSet.java, * tools/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet.java, * tools/gnu/classpath/tools/doclets/htmldoclet/HtmlPage.java, * tools/gnu/classpath/tools/doclets/htmldoclet/HtmlTagletContext.java, * tools/gnu/classpath/tools/doclets/xmldoclet/Driver.java, * tools/gnu/classpath/tools/doclets/xmldoclet/Driver1_4.java, * tools/gnu/classpath/tools/doclets/xmldoclet/HtmlRepairer.java, * tools/gnu/classpath/tools/doclets/xmldoclet/TargetContext.java, * tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTranslet.java, * tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTransletConfigurationException.java, * tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTransletException.java, * tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTransletOptions.java, * tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/JarClassLoader.java, * tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/OutputFileInfo.java, * tools/gnu/classpath/tools/getopt/FileArgumentCallback.java, * tools/gnu/classpath/tools/getopt/Option.java, * tools/gnu/classpath/tools/getopt/OptionGroup.java, * tools/gnu/classpath/tools/getopt/Parser.java, * tools/gnu/classpath/tools/gjdoc/AbstractTagImpl.java, * tools/gnu/classpath/tools/gjdoc/ArrayCharacterIterator.java, * tools/gnu/classpath/tools/gjdoc/ClassDocImpl.java, * tools/gnu/classpath/tools/gjdoc/ClassDocProxy.java, * tools/gnu/classpath/tools/gjdoc/ClassDocReflectedImpl.java, * tools/gnu/classpath/tools/gjdoc/ConstructorDocImpl.java, * tools/gnu/classpath/tools/gjdoc/Debug.java, * tools/gnu/classpath/tools/gjdoc/DirectoryTree.java, * tools/gnu/classpath/tools/gjdoc/DocImpl.java, * tools/gnu/classpath/tools/gjdoc/ErrorReporter.java, * tools/gnu/classpath/tools/gjdoc/ExecutableMemberDocImpl.java, * tools/gnu/classpath/tools/gjdoc/FieldDocImpl.java, * tools/gnu/classpath/tools/gjdoc/GjdocPackageDoc.java, * tools/gnu/classpath/tools/gjdoc/GjdocRootDoc.java, * tools/gnu/classpath/tools/gjdoc/InheritDocTagImpl.java, * tools/gnu/classpath/tools/gjdoc/JavadocWrapper.java, * tools/gnu/classpath/tools/gjdoc/LinkTagImpl.java, * tools/gnu/classpath/tools/gjdoc/Main.java, * tools/gnu/classpath/tools/gjdoc/MemberDocImpl.java, * tools/gnu/classpath/tools/gjdoc/MethodDocImpl.java, * tools/gnu/classpath/tools/gjdoc/PackageDocImpl.java, * tools/gnu/classpath/tools/gjdoc/ParamTagImpl.java, * tools/gnu/classpath/tools/gjdoc/ParameterImpl.java, * tools/gnu/classpath/tools/gjdoc/ParseException.java, * tools/gnu/classpath/tools/gjdoc/Parser.java, * tools/gnu/classpath/tools/gjdoc/ProgramElementDocImpl.java, * tools/gnu/classpath/tools/gjdoc/RootDocImpl.java, * tools/gnu/classpath/tools/gjdoc/SeeTagImpl.java, * tools/gnu/classpath/tools/gjdoc/SerialFieldTagImpl.java, * tools/gnu/classpath/tools/gjdoc/SourcePositionImpl.java, * tools/gnu/classpath/tools/gjdoc/TagContainer.java, * tools/gnu/classpath/tools/gjdoc/TagImpl.java, * tools/gnu/classpath/tools/gjdoc/TemporaryStore.java, * tools/gnu/classpath/tools/gjdoc/TextTagImpl.java, * tools/gnu/classpath/tools/gjdoc/ThrowsTagImpl.java, * tools/gnu/classpath/tools/gjdoc/Timer.java, * tools/gnu/classpath/tools/gjdoc/TimerDoclet.java, * tools/gnu/classpath/tools/gjdoc/TypeImpl.java, * tools/gnu/classpath/tools/gjdoc/TypeVariableImpl.java, * tools/gnu/classpath/tools/gjdoc/ValueTagImpl.java, * tools/gnu/classpath/tools/gjdoc/WritableType.java, * tools/gnu/classpath/tools/gjdoc/expr/AdditionExpression.java, * tools/gnu/classpath/tools/gjdoc/expr/AndExpression.java, * tools/gnu/classpath/tools/gjdoc/expr/BinaryBitwiseExpression.java, * tools/gnu/classpath/tools/gjdoc/expr/BinaryComputationExpression.java, * tools/gnu/classpath/tools/gjdoc/expr/BinaryEqualityExpression.java, * tools/gnu/classpath/tools/gjdoc/expr/BinaryExpression.java, * tools/gnu/classpath/tools/gjdoc/expr/BinaryLogicalExpression.java, * tools/gnu/classpath/tools/gjdoc/expr/BinaryRelationExpression.java, * tools/gnu/classpath/tools/gjdoc/expr/BinaryShiftExpression.java, * tools/gnu/classpath/tools/gjdoc/expr/BitShiftRightExpression.java, * tools/gnu/classpath/tools/gjdoc/expr/CircularExpressionException.java, * tools/gnu/classpath/tools/gjdoc/expr/ConditionalExpression.java, * tools/gnu/classpath/tools/gjdoc/expr/ConstantBoolean.java, * tools/gnu/classpath/tools/gjdoc/expr/ConstantByte.java, * tools/gnu/classpath/tools/gjdoc/expr/ConstantChar.java, * tools/gnu/classpath/tools/gjdoc/expr/ConstantDouble.java, * tools/gnu/classpath/tools/gjdoc/expr/ConstantExpression.java, * tools/gnu/classpath/tools/gjdoc/expr/ConstantFloat.java, * tools/gnu/classpath/tools/gjdoc/expr/ConstantInteger.java, * tools/gnu/classpath/tools/gjdoc/expr/ConstantLong.java, * tools/gnu/classpath/tools/gjdoc/expr/ConstantNull.java, * tools/gnu/classpath/tools/gjdoc/expr/ConstantShort.java, * tools/gnu/classpath/tools/gjdoc/expr/ConstantString.java, * tools/gnu/classpath/tools/gjdoc/expr/Context.java, * tools/gnu/classpath/tools/gjdoc/expr/DivisionExpression.java, * tools/gnu/classpath/tools/gjdoc/expr/EqualExpression.java, * tools/gnu/classpath/tools/gjdoc/expr/Evaluator.java, * tools/gnu/classpath/tools/gjdoc/expr/EvaluatorEnvironment.java, * tools/gnu/classpath/tools/gjdoc/expr/ExclusiveOrExpression.java, * tools/gnu/classpath/tools/gjdoc/expr/Expression.java, * tools/gnu/classpath/tools/gjdoc/expr/GreaterThanExpression.java, * tools/gnu/classpath/tools/gjdoc/expr/GreaterThanOrEqualExpression.java, * tools/gnu/classpath/tools/gjdoc/expr/IdentifierExpression.java, * tools/gnu/classpath/tools/gjdoc/expr/IllegalExpressionException.java, * tools/gnu/classpath/tools/gjdoc/expr/InclusiveOrExpression.java, * tools/gnu/classpath/tools/gjdoc/expr/LessThanExpression.java, * tools/gnu/classpath/tools/gjdoc/expr/LessThanOrEqualExpression.java, * tools/gnu/classpath/tools/gjdoc/expr/LogicalAndExpression.java, * tools/gnu/classpath/tools/gjdoc/expr/LogicalNotExpression.java, * tools/gnu/classpath/tools/gjdoc/expr/LogicalOrExpression.java, * tools/gnu/classpath/tools/gjdoc/expr/ModuloExpression.java, * tools/gnu/classpath/tools/gjdoc/expr/MultiplicationExpression.java, * tools/gnu/classpath/tools/gjdoc/expr/NegateExpression.java, * tools/gnu/classpath/tools/gjdoc/expr/NotEqualExpression.java, * tools/gnu/classpath/tools/gjdoc/expr/NotExpression.java, * tools/gnu/classpath/tools/gjdoc/expr/ShiftLeftExpression.java, * tools/gnu/classpath/tools/gjdoc/expr/ShiftRightExpression.java, * tools/gnu/classpath/tools/gjdoc/expr/SubtractionExpression.java, * tools/gnu/classpath/tools/gjdoc/expr/Type.java, * tools/gnu/classpath/tools/gjdoc/expr/TypeCastExpression.java, * tools/gnu/classpath/tools/gjdoc/expr/UnaryExpression.java, * tools/gnu/classpath/tools/gjdoc/expr/UnknownIdentifierException.java, * tools/gnu/classpath/tools/jar/Creator.java, * tools/gnu/classpath/tools/jar/Indexer.java, * tools/gnu/classpath/tools/jar/Main.java, * tools/gnu/classpath/tools/jar/Updater.java, * tools/gnu/classpath/tools/jarsigner/JarVerifier.java, * tools/gnu/classpath/tools/jarsigner/Main.java, * tools/gnu/classpath/tools/jarsigner/SFHelper.java, * tools/gnu/classpath/tools/java2xhtml/Java2xhtml.java, * tools/gnu/classpath/tools/javah/ClassWrapper.java, * tools/gnu/classpath/tools/javah/CniPrintStream.java, * tools/gnu/classpath/tools/javah/GcjhMain.java, * tools/gnu/classpath/tools/javah/JniHelper.java, * tools/gnu/classpath/tools/javah/JniIncludePrinter.java, * tools/gnu/classpath/tools/javah/JniStubPrinter.java, * tools/gnu/classpath/tools/javah/Keywords.java, * tools/gnu/classpath/tools/javah/Main.java, * tools/gnu/classpath/tools/javah/MethodHelper.java, * tools/gnu/classpath/tools/keytool/CACertCmd.java, * tools/gnu/classpath/tools/keytool/CertReqCmd.java, * tools/gnu/classpath/tools/keytool/Command.java, * tools/gnu/classpath/tools/keytool/DeleteCmd.java, * tools/gnu/classpath/tools/keytool/ExportCmd.java, * tools/gnu/classpath/tools/keytool/GenKeyCmd.java, * tools/gnu/classpath/tools/keytool/IdentityDBCmd.java, * tools/gnu/classpath/tools/keytool/ImportCmd.java, * tools/gnu/classpath/tools/keytool/KeyCloneCmd.java, * tools/gnu/classpath/tools/keytool/KeyPasswdCmd.java, * tools/gnu/classpath/tools/keytool/ListCmd.java, * tools/gnu/classpath/tools/keytool/PrintCertCmd.java, * tools/gnu/classpath/tools/keytool/SelfCertCmd.java, * tools/gnu/classpath/tools/keytool/StorePasswdCmd.java, * tools/gnu/classpath/tools/orbd/Main.java, * tools/gnu/classpath/tools/orbd/PersistentContext.java, * tools/gnu/classpath/tools/orbd/PersistentContextMap.java, * tools/gnu/classpath/tools/orbd/PersistentMap.java, * tools/gnu/classpath/tools/rmic/AbstractMethodGenerator.java, * tools/gnu/classpath/tools/rmic/ClassRmicCompiler.java, * tools/gnu/classpath/tools/rmic/CompilationError.java, * tools/gnu/classpath/tools/rmic/Generator.java, * tools/gnu/classpath/tools/rmic/GiopIo.java, * tools/gnu/classpath/tools/rmic/HashFinder.java, * tools/gnu/classpath/tools/rmic/Main.java, * tools/gnu/classpath/tools/rmic/MethodGenerator.java, * tools/gnu/classpath/tools/rmic/RMICException.java, * tools/gnu/classpath/tools/rmic/RmiMethodGenerator.java, * tools/gnu/classpath/tools/rmic/RmicBackend.java, * tools/gnu/classpath/tools/rmic/SourceGiopRmicCompiler.java, * tools/gnu/classpath/tools/rmic/SourceRmicCompiler.java, * tools/gnu/classpath/tools/rmic/Variables.java, * tools/gnu/classpath/tools/rmic/WrapUnWrapper.java, * tools/gnu/classpath/tools/rmid/ActivationSystemImpl.java, * tools/gnu/classpath/tools/rmid/ActivationSystemImpl_Stub.java, * tools/gnu/classpath/tools/rmid/Main.java, * tools/gnu/classpath/tools/rmid/PersistentBidiHashTable.java, * tools/gnu/classpath/tools/rmiregistry/Main.java, * tools/gnu/classpath/tools/rmiregistry/PersistentHashTable.java, * tools/gnu/classpath/tools/rmiregistry/RegistryImpl.java, * tools/gnu/classpath/tools/rmiregistry/RegistryImpl_Skel.java, * tools/gnu/classpath/tools/rmiregistry/RegistryImpl_Stub.java, * tools/gnu/classpath/tools/serialver/SerialVer.java, * tools/gnu/classpath/tools/taglets/AuthorTaglet.java, * tools/gnu/classpath/tools/taglets/CodeTaglet.java, * tools/gnu/classpath/tools/taglets/CopyrightTaglet.java, * tools/gnu/classpath/tools/taglets/DeprecatedTaglet.java, * tools/gnu/classpath/tools/taglets/GenericTaglet.java, * tools/gnu/classpath/tools/taglets/GnuExtendedTaglet.java, * tools/gnu/classpath/tools/taglets/SinceTaglet.java, * tools/gnu/classpath/tools/taglets/TagletContext.java, * tools/gnu/classpath/tools/taglets/ValueTaglet.java, * tools/gnu/classpath/tools/taglets/VersionTaglet.java, * tools/gnu/classpath/tools/tnameserv/Main.java, * vm/reference/gnu/classpath/jdwp/VMFrame.java, * vm/reference/gnu/classpath/jdwp/VMIdManager.java, * vm/reference/gnu/classpath/jdwp/VMMethod.java, * vm/reference/gnu/classpath/jdwp/VMVirtualMachine.java, * vm/reference/gnu/java/lang/VMCPStringBuilder.java, * vm/reference/gnu/java/lang/VMInstrumentationImpl.java, * vm/reference/gnu/java/lang/management/VMClassLoadingMXBeanImpl.java, * vm/reference/gnu/java/lang/management/VMCompilationMXBeanImpl.java, * vm/reference/gnu/java/lang/management/VMGarbageCollectorMXBeanImpl.java, * vm/reference/gnu/java/lang/management/VMMemoryMXBeanImpl.java, * vm/reference/gnu/java/lang/management/VMMemoryManagerMXBeanImpl.java, * vm/reference/gnu/java/lang/management/VMMemoryPoolMXBeanImpl.java, * vm/reference/gnu/java/lang/management/VMThreadMXBeanImpl.java, * vm/reference/gnu/java/net/VMPlainDatagramSocketImpl.java, * vm/reference/gnu/java/net/VMPlainSocketImpl.java, * vm/reference/gnu/java/nio/VMChannel.java, * vm/reference/gnu/java/nio/VMPipe.java, * vm/reference/gnu/java/nio/VMSelector.java, * vm/reference/gnu/java/security/jce/prng/VMSecureRandom.java, * vm/reference/java/io/VMFile.java, * vm/reference/java/io/VMObjectInputStream.java, * vm/reference/java/io/VMObjectStreamClass.java, * vm/reference/java/lang/VMClass.java, * vm/reference/java/lang/VMClassLoader.java, * vm/reference/java/lang/VMDouble.java, * vm/reference/java/lang/VMFloat.java, * vm/reference/java/lang/VMMath.java, * vm/reference/java/lang/VMObject.java, * vm/reference/java/lang/VMProcess.java, * vm/reference/java/lang/VMRuntime.java, * vm/reference/java/lang/VMString.java, * vm/reference/java/lang/VMSystem.java, * vm/reference/java/lang/VMThread.java, * vm/reference/java/lang/reflect/VMConstructor.java, * vm/reference/java/lang/reflect/VMField.java, * vm/reference/java/lang/reflect/VMMethod.java, * vm/reference/java/net/VMNetworkInterface.java, * vm/reference/java/nio/channels/VMChannels.java, * vm/reference/java/security/VMAccessController.java, * vm/reference/java/security/VMSecureRandom.java, * vm/reference/java/util/VMTimeZone.java, * vm/reference/sun/misc/Unsafe.java, * vm/reference/sun/reflect/Reflection.java, * vm/reference/sun/reflect/misc/ReflectUtil.java: Normalise whitespace. From-SVN: r168680
5831 lines
160 KiB
Java
5831 lines
160 KiB
Java
/* XmlParser.java --
|
|
Copyright (C) 1999,2000,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.
|
|
|
|
Partly derived from code which carried the following notice:
|
|
|
|
Copyright (c) 1997, 1998 by Microstar Software Ltd.
|
|
|
|
AElfred is free for both commercial and non-commercial use and
|
|
redistribution, provided that Microstar's copyright and disclaimer are
|
|
retained intact. You are free to modify AElfred for your own use and
|
|
to redistribute AElfred with your modifications, provided that the
|
|
modifications are clearly documented.
|
|
|
|
This program is distributed in the hope that it will be useful, but
|
|
WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
merchantability or fitness for a particular purpose. Please use it AT
|
|
YOUR OWN RISK.
|
|
*/
|
|
|
|
package gnu.xml.aelfred2;
|
|
|
|
import gnu.java.security.action.GetPropertyAction;
|
|
|
|
import java.io.BufferedInputStream;
|
|
import java.io.CharConversionException;
|
|
import java.io.EOFException;
|
|
import java.io.InputStream;
|
|
import java.io.InputStreamReader;
|
|
import java.io.IOException;
|
|
import java.io.Reader;
|
|
import java.io.UnsupportedEncodingException;
|
|
import java.net.URL;
|
|
import java.net.URLConnection;
|
|
import java.security.AccessController;
|
|
|
|
import java.util.Iterator;
|
|
import java.util.HashMap;
|
|
import java.util.LinkedList;
|
|
|
|
import org.xml.sax.InputSource;
|
|
import org.xml.sax.SAXException;
|
|
|
|
|
|
/**
|
|
* Parse XML documents and return parse events through call-backs.
|
|
* Use the <code>SAXDriver</code> class as your entry point, as all
|
|
* internal parser interfaces are subject to change.
|
|
*
|
|
* @author Written by David Megginson <dmeggins@microstar.com>
|
|
* (version 1.2a with bugfixes)
|
|
* @author Updated by David Brownell <dbrownell@users.sourceforge.net>
|
|
* @see SAXDriver
|
|
*/
|
|
final class XmlParser
|
|
{
|
|
|
|
// avoid slow per-character readCh()
|
|
private final static boolean USE_CHEATS = true;
|
|
|
|
////////////////////////////////////////////////////////////////////////
|
|
// Constants.
|
|
////////////////////////////////////////////////////////////////////////
|
|
|
|
//
|
|
// Constants for element content type.
|
|
//
|
|
|
|
/**
|
|
* Constant: an element has not been declared.
|
|
* @see #getElementContentType
|
|
*/
|
|
public final static int CONTENT_UNDECLARED = 0;
|
|
|
|
/**
|
|
* Constant: the element has a content model of ANY.
|
|
* @see #getElementContentType
|
|
*/
|
|
public final static int CONTENT_ANY = 1;
|
|
|
|
/**
|
|
* Constant: the element has declared content of EMPTY.
|
|
* @see #getElementContentType
|
|
*/
|
|
public final static int CONTENT_EMPTY = 2;
|
|
|
|
/**
|
|
* Constant: the element has mixed content.
|
|
* @see #getElementContentType
|
|
*/
|
|
public final static int CONTENT_MIXED = 3;
|
|
|
|
/**
|
|
* Constant: the element has element content.
|
|
* @see #getElementContentType
|
|
*/
|
|
public final static int CONTENT_ELEMENTS = 4;
|
|
|
|
|
|
//
|
|
// Constants for the entity type.
|
|
//
|
|
|
|
/**
|
|
* Constant: the entity has not been declared.
|
|
* @see #getEntityType
|
|
*/
|
|
public final static int ENTITY_UNDECLARED = 0;
|
|
|
|
/**
|
|
* Constant: the entity is internal.
|
|
* @see #getEntityType
|
|
*/
|
|
public final static int ENTITY_INTERNAL = 1;
|
|
|
|
/**
|
|
* Constant: the entity is external, non-parsable data.
|
|
* @see #getEntityType
|
|
*/
|
|
public final static int ENTITY_NDATA = 2;
|
|
|
|
/**
|
|
* Constant: the entity is external XML data.
|
|
* @see #getEntityType
|
|
*/
|
|
public final static int ENTITY_TEXT = 3;
|
|
|
|
//
|
|
// Attribute type constants are interned literal strings.
|
|
//
|
|
|
|
//
|
|
// Constants for supported encodings. "external" is just a flag.
|
|
//
|
|
private final static int ENCODING_EXTERNAL = 0;
|
|
private final static int ENCODING_UTF_8 = 1;
|
|
private final static int ENCODING_ISO_8859_1 = 2;
|
|
private final static int ENCODING_UCS_2_12 = 3;
|
|
private final static int ENCODING_UCS_2_21 = 4;
|
|
private final static int ENCODING_UCS_4_1234 = 5;
|
|
private final static int ENCODING_UCS_4_4321 = 6;
|
|
private final static int ENCODING_UCS_4_2143 = 7;
|
|
private final static int ENCODING_UCS_4_3412 = 8;
|
|
private final static int ENCODING_ASCII = 9;
|
|
|
|
//
|
|
// Constants for attribute default value.
|
|
//
|
|
|
|
/**
|
|
* Constant: the attribute is not declared.
|
|
* @see #getAttributeDefaultValueType
|
|
*/
|
|
public final static int ATTRIBUTE_DEFAULT_UNDECLARED = 30;
|
|
|
|
/**
|
|
* Constant: the attribute has a literal default value specified.
|
|
* @see #getAttributeDefaultValueType
|
|
* @see #getAttributeDefaultValue
|
|
*/
|
|
public final static int ATTRIBUTE_DEFAULT_SPECIFIED = 31;
|
|
|
|
/**
|
|
* Constant: the attribute was declared #IMPLIED.
|
|
* @see #getAttributeDefaultValueType
|
|
*/
|
|
public final static int ATTRIBUTE_DEFAULT_IMPLIED = 32;
|
|
|
|
/**
|
|
* Constant: the attribute was declared #REQUIRED.
|
|
* @see #getAttributeDefaultValueType
|
|
*/
|
|
public final static int ATTRIBUTE_DEFAULT_REQUIRED = 33;
|
|
|
|
/**
|
|
* Constant: the attribute was declared #FIXED.
|
|
* @see #getAttributeDefaultValueType
|
|
* @see #getAttributeDefaultValue
|
|
*/
|
|
public final static int ATTRIBUTE_DEFAULT_FIXED = 34;
|
|
|
|
//
|
|
// Constants for input.
|
|
//
|
|
private final static int INPUT_NONE = 0;
|
|
private final static int INPUT_INTERNAL = 1;
|
|
private final static int INPUT_STREAM = 3;
|
|
private final static int INPUT_READER = 5;
|
|
|
|
//
|
|
// Flags for reading literals.
|
|
//
|
|
// expand general entity refs (attribute values in dtd and content)
|
|
private final static int LIT_ENTITY_REF = 2;
|
|
// normalize this value (space chars) (attributes, public ids)
|
|
private final static int LIT_NORMALIZE = 4;
|
|
// literal is an attribute value
|
|
private final static int LIT_ATTRIBUTE = 8;
|
|
// don't expand parameter entities
|
|
private final static int LIT_DISABLE_PE = 16;
|
|
// don't expand [or parse] character refs
|
|
private final static int LIT_DISABLE_CREF = 32;
|
|
// don't parse general entity refs
|
|
private final static int LIT_DISABLE_EREF = 64;
|
|
// literal is a public ID value
|
|
private final static int LIT_PUBID = 256;
|
|
|
|
//
|
|
// Flags affecting PE handling in DTDs (if expandPE is true).
|
|
// PEs expand with space padding, except inside literals.
|
|
//
|
|
private final static int CONTEXT_NORMAL = 0;
|
|
private final static int CONTEXT_LITERAL = 1;
|
|
|
|
// Emit warnings for relative URIs with no base URI.
|
|
static boolean uriWarnings;
|
|
static
|
|
{
|
|
String key = "gnu.xml.aelfred2.XmlParser.uriWarnings";
|
|
GetPropertyAction a = new GetPropertyAction(key);
|
|
uriWarnings = "true".equals(AccessController.doPrivileged(a));
|
|
}
|
|
|
|
//
|
|
// The current XML handler interface.
|
|
//
|
|
private SAXDriver handler;
|
|
|
|
//
|
|
// I/O information.
|
|
//
|
|
private Reader reader; // current reader
|
|
private InputStream is; // current input stream
|
|
private int line; // current line number
|
|
private int column; // current column number
|
|
private int sourceType; // type of input source
|
|
private LinkedList inputStack; // stack of input soruces
|
|
private URLConnection externalEntity; // current external entity
|
|
private int encoding; // current character encoding
|
|
private int currentByteCount; // bytes read from current source
|
|
private InputSource scratch; // temporary
|
|
|
|
//
|
|
// Buffers for decoded but unparsed character input.
|
|
//
|
|
private char[] readBuffer;
|
|
private int readBufferPos;
|
|
private int readBufferLength;
|
|
private int readBufferOverflow; // overflow from last data chunk.
|
|
|
|
//
|
|
// Buffer for undecoded raw byte input.
|
|
//
|
|
private final static int READ_BUFFER_MAX = 16384;
|
|
private byte[] rawReadBuffer;
|
|
|
|
|
|
//
|
|
// Buffer for attribute values, char refs, DTD stuff.
|
|
//
|
|
private static int DATA_BUFFER_INITIAL = 4096;
|
|
private char[] dataBuffer;
|
|
private int dataBufferPos;
|
|
|
|
//
|
|
// Buffer for parsed names.
|
|
//
|
|
private static int NAME_BUFFER_INITIAL = 1024;
|
|
private char[] nameBuffer;
|
|
private int nameBufferPos;
|
|
|
|
//
|
|
// Save any standalone flag
|
|
//
|
|
private boolean docIsStandalone;
|
|
|
|
//
|
|
// Hashtables for DTD information on elements, entities, and notations.
|
|
// Populated until we start ignoring decls (because of skipping a PE)
|
|
//
|
|
private HashMap elementInfo;
|
|
private HashMap entityInfo;
|
|
private HashMap notationInfo;
|
|
private boolean skippedPE;
|
|
|
|
//
|
|
// Element type currently in force.
|
|
//
|
|
private String currentElement;
|
|
private int currentElementContent;
|
|
|
|
//
|
|
// Stack of entity names, to detect recursion.
|
|
//
|
|
private LinkedList entityStack;
|
|
|
|
//
|
|
// PE expansion is enabled in most chunks of the DTD, not all.
|
|
// When it's enabled, literals are treated differently.
|
|
//
|
|
private boolean inLiteral;
|
|
private boolean expandPE;
|
|
private boolean peIsError;
|
|
|
|
//
|
|
// can't report entity expansion inside two constructs:
|
|
// - attribute expansions (internal entities only)
|
|
// - markup declarations (parameter entities only)
|
|
//
|
|
private boolean doReport;
|
|
|
|
//
|
|
// Symbol table, for caching interned names.
|
|
//
|
|
// These show up wherever XML names or nmtokens are used: naming elements,
|
|
// attributes, PIs, notations, entities, and enumerated attribute values.
|
|
//
|
|
// NOTE: This hashtable doesn't grow. The default size is intended to be
|
|
// rather large for most documents. Example: one snapshot of the DocBook
|
|
// XML 4.1 DTD used only about 350 such names. As a rule, only pathological
|
|
// documents (ones that don't reuse names) should ever see much collision.
|
|
//
|
|
// Be sure that SYMBOL_TABLE_LENGTH always stays prime, for best hashing.
|
|
// "2039" keeps the hash table size at about two memory pages on typical
|
|
// 32 bit hardware.
|
|
//
|
|
private final static int SYMBOL_TABLE_LENGTH = 2039;
|
|
|
|
private Object[][] symbolTable;
|
|
|
|
//
|
|
// Hash table of attributes found in current start tag.
|
|
//
|
|
private String[] tagAttributes;
|
|
private int tagAttributePos;
|
|
|
|
//
|
|
// Utility flag: have we noticed a CR while reading the last
|
|
// data chunk? If so, we will have to go back and normalise
|
|
// CR or CR/LF line ends.
|
|
//
|
|
private boolean sawCR;
|
|
|
|
//
|
|
// Utility flag: are we in CDATA? If so, whitespace isn't ignorable.
|
|
//
|
|
private boolean inCDATA;
|
|
|
|
//
|
|
// Xml version.
|
|
//
|
|
private static final int XML_10 = 0;
|
|
private static final int XML_11 = 1;
|
|
private int xmlVersion = XML_10;
|
|
|
|
//////////////////////////////////////////////////////////////////////
|
|
// Constructors.
|
|
////////////////////////////////////////////////////////////////////////
|
|
|
|
/**
|
|
* Construct a new parser with no associated handler.
|
|
* @see #setHandler
|
|
* @see #parse
|
|
*/
|
|
// package private
|
|
XmlParser()
|
|
{
|
|
}
|
|
|
|
/**
|
|
* Set the handler that will receive parsing events.
|
|
* @param handler The handler to receive callback events.
|
|
* @see #parse
|
|
*/
|
|
// package private
|
|
void setHandler(SAXDriver handler)
|
|
{
|
|
this.handler = handler;
|
|
}
|
|
|
|
/**
|
|
* Parse an XML document from the character stream, byte stream, or URI
|
|
* that you provide (in that order of preference). Any URI that you
|
|
* supply will become the base URI for resolving relative URI, and may
|
|
* be used to acquire a reader or byte stream.
|
|
*
|
|
* <p> Only one thread at a time may use this parser; since it is
|
|
* private to this package, post-parse cleanup is done by the caller,
|
|
* which MUST NOT REUSE the parser (just null it).
|
|
*
|
|
* @param systemId Absolute URI of the document; should never be null,
|
|
* but may be so iff a reader <em>or</em> a stream is provided.
|
|
* @param publicId The public identifier of the document, or null.
|
|
* @param reader A character stream; must be null if stream isn't.
|
|
* @param stream A byte input stream; must be null if reader isn't.
|
|
* @param encoding The suggested encoding, or null if unknown.
|
|
* @exception java.lang.Exception Basically SAXException or IOException
|
|
*/
|
|
// package private
|
|
void doParse(String systemId, String publicId, Reader reader,
|
|
InputStream stream, String encoding)
|
|
throws Exception
|
|
{
|
|
if (handler == null)
|
|
{
|
|
throw new IllegalStateException("no callback handler");
|
|
}
|
|
|
|
initializeVariables();
|
|
|
|
// predeclare the built-in entities here (replacement texts)
|
|
// we don't need to intern(), since we're guaranteed literals
|
|
// are always (globally) interned.
|
|
setInternalEntity("amp", "&");
|
|
setInternalEntity("lt", "<");
|
|
setInternalEntity("gt", ">");
|
|
setInternalEntity("apos", "'");
|
|
setInternalEntity("quot", """);
|
|
|
|
try
|
|
{
|
|
// pushURL first to ensure locator is correct in startDocument
|
|
// ... it might report an IO or encoding exception.
|
|
handler.startDocument();
|
|
pushURL(false, "[document]",
|
|
// default baseURI: null
|
|
new ExternalIdentifiers(publicId, systemId, null),
|
|
reader, stream, encoding, false);
|
|
|
|
parseDocument();
|
|
}
|
|
catch (EOFException e)
|
|
{
|
|
//empty input
|
|
error("empty document, with no root element.");
|
|
}
|
|
finally
|
|
{
|
|
if (reader != null)
|
|
{
|
|
try
|
|
{
|
|
reader.close();
|
|
}
|
|
catch (IOException e)
|
|
{
|
|
/* ignore */
|
|
}
|
|
}
|
|
if (stream != null)
|
|
{
|
|
try
|
|
{
|
|
stream.close();
|
|
}
|
|
catch (IOException e)
|
|
{
|
|
/* ignore */
|
|
}
|
|
}
|
|
if (is != null)
|
|
{
|
|
try
|
|
{
|
|
is.close();
|
|
}
|
|
catch (IOException e)
|
|
{
|
|
/* ignore */
|
|
}
|
|
}
|
|
scratch = null;
|
|
}
|
|
}
|
|
|
|
//////////////////////////////////////////////////////////////////////
|
|
// Error reporting.
|
|
//////////////////////////////////////////////////////////////////////
|
|
|
|
/**
|
|
* Report an error.
|
|
* @param message The error message.
|
|
* @param textFound The text that caused the error (or null).
|
|
* @see SAXDriver#error
|
|
* @see #line
|
|
*/
|
|
private void error(String message, String textFound, String textExpected)
|
|
throws SAXException
|
|
{
|
|
if (textFound != null)
|
|
{
|
|
message = message + " (found \"" + textFound + "\")";
|
|
}
|
|
if (textExpected != null)
|
|
{
|
|
message = message + " (expected \"" + textExpected + "\")";
|
|
}
|
|
handler.fatal(message);
|
|
|
|
// "can't happen"
|
|
throw new SAXException(message);
|
|
}
|
|
|
|
/**
|
|
* Report a serious error.
|
|
* @param message The error message.
|
|
* @param textFound The text that caused the error (or null).
|
|
*/
|
|
private void error(String message, char textFound, String textExpected)
|
|
throws SAXException
|
|
{
|
|
error(message, Character.toString(textFound), textExpected);
|
|
}
|
|
|
|
/**
|
|
* Report typical case fatal errors.
|
|
*/
|
|
private void error(String message)
|
|
throws SAXException
|
|
{
|
|
handler.fatal(message);
|
|
}
|
|
|
|
//////////////////////////////////////////////////////////////////////
|
|
// Major syntactic productions.
|
|
//////////////////////////////////////////////////////////////////////
|
|
|
|
/**
|
|
* Parse an XML document.
|
|
* <pre>
|
|
* [1] document ::= prolog element Misc*
|
|
* </pre>
|
|
* <p>This is the top-level parsing function for a single XML
|
|
* document. As a minimum, a well-formed document must have
|
|
* a document element, and a valid document must have a prolog
|
|
* (one with doctype) as well.
|
|
*/
|
|
private void parseDocument()
|
|
throws Exception
|
|
{
|
|
try
|
|
{ // added by MHK
|
|
boolean sawDTD = parseProlog();
|
|
require('<');
|
|
parseElement(!sawDTD);
|
|
}
|
|
catch (EOFException ee)
|
|
{ // added by MHK
|
|
error("premature end of file", "[EOF]", null);
|
|
}
|
|
|
|
try
|
|
{
|
|
parseMisc(); //skip all white, PIs, and comments
|
|
char c = readCh(); //if this doesn't throw an exception...
|
|
error("unexpected characters after document end", c, null);
|
|
}
|
|
catch (EOFException e)
|
|
{
|
|
return;
|
|
}
|
|
}
|
|
|
|
static final char[] startDelimComment = { '<', '!', '-', '-' };
|
|
static final char[] endDelimComment = { '-', '-' };
|
|
|
|
/**
|
|
* Skip a comment.
|
|
* <pre>
|
|
* [15] Comment ::= '<!--' ((Char - '-') | ('-' (Char - '-')))* "-->"
|
|
* </pre>
|
|
* <p> (The <code><!--</code> has already been read.)
|
|
*/
|
|
private void parseComment()
|
|
throws Exception
|
|
{
|
|
char c;
|
|
boolean saved = expandPE;
|
|
|
|
expandPE = false;
|
|
parseUntil(endDelimComment);
|
|
require('>');
|
|
expandPE = saved;
|
|
handler.comment(dataBuffer, 0, dataBufferPos);
|
|
dataBufferPos = 0;
|
|
}
|
|
|
|
static final char[] startDelimPI = { '<', '?' };
|
|
static final char[] endDelimPI = { '?', '>' };
|
|
|
|
/**
|
|
* Parse a processing instruction and do a call-back.
|
|
* <pre>
|
|
* [16] PI ::= '<?' PITarget
|
|
* (S (Char* - (Char* '?>' Char*)))?
|
|
* '?>'
|
|
* [17] PITarget ::= Name - ( ('X'|'x') ('M'|m') ('L'|l') )
|
|
* </pre>
|
|
* <p> (The <code><?</code> has already been read.)
|
|
*/
|
|
private void parsePI()
|
|
throws SAXException, IOException
|
|
{
|
|
String name;
|
|
boolean saved = expandPE;
|
|
|
|
expandPE = false;
|
|
name = readNmtoken(true);
|
|
//NE08
|
|
if (name.indexOf(':') >= 0)
|
|
{
|
|
error("Illegal character(':') in processing instruction name ",
|
|
name, null);
|
|
}
|
|
if ("xml".equalsIgnoreCase(name))
|
|
{
|
|
error("Illegal processing instruction target", name, null);
|
|
}
|
|
if (!tryRead(endDelimPI))
|
|
{
|
|
requireWhitespace();
|
|
parseUntil(endDelimPI);
|
|
}
|
|
expandPE = saved;
|
|
handler.processingInstruction(name, dataBufferToString());
|
|
}
|
|
|
|
static final char[] endDelimCDATA = { ']', ']', '>' };
|
|
|
|
private boolean isDirtyCurrentElement;
|
|
|
|
/**
|
|
* Parse a CDATA section.
|
|
* <pre>
|
|
* [18] CDSect ::= CDStart CData CDEnd
|
|
* [19] CDStart ::= '<![CDATA['
|
|
* [20] CData ::= (Char* - (Char* ']]>' Char*))
|
|
* [21] CDEnd ::= ']]>'
|
|
* </pre>
|
|
* <p> (The '<![CDATA[' has already been read.)
|
|
*/
|
|
private void parseCDSect()
|
|
throws Exception
|
|
{
|
|
parseUntil(endDelimCDATA);
|
|
dataBufferFlush();
|
|
}
|
|
|
|
/**
|
|
* Parse the prolog of an XML document.
|
|
* <pre>
|
|
* [22] prolog ::= XMLDecl? Misc* (Doctypedecl Misc*)?
|
|
* </pre>
|
|
* <p>We do not look for the XML declaration here, because it was
|
|
* handled by pushURL ().
|
|
* @see pushURL
|
|
* @return true if a DTD was read.
|
|
*/
|
|
private boolean parseProlog()
|
|
throws Exception
|
|
{
|
|
parseMisc();
|
|
|
|
if (tryRead("<!DOCTYPE"))
|
|
{
|
|
parseDoctypedecl();
|
|
parseMisc();
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
private void checkLegalVersion(String version)
|
|
throws SAXException
|
|
{
|
|
int len = version.length();
|
|
for (int i = 0; i < len; i++)
|
|
{
|
|
char c = version.charAt(i);
|
|
if ('0' <= c && c <= '9')
|
|
{
|
|
continue;
|
|
}
|
|
if (c == '_' || c == '.' || c == ':' || c == '-')
|
|
{
|
|
continue;
|
|
}
|
|
if ('a' <= c && c <= 'z')
|
|
{
|
|
continue;
|
|
}
|
|
if ('A' <= c && c <= 'Z')
|
|
{
|
|
continue;
|
|
}
|
|
error ("illegal character in version", version, "1.0");
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Parse the XML declaration.
|
|
* <pre>
|
|
* [23] XMLDecl ::= '<?xml' VersionInfo EncodingDecl? SDDecl? S? '?>'
|
|
* [24] VersionInfo ::= S 'version' Eq
|
|
* ("'" VersionNum "'" | '"' VersionNum '"' )
|
|
* [26] VersionNum ::= ([a-zA-Z0-9_.:] | '-')*
|
|
* [32] SDDecl ::= S 'standalone' Eq
|
|
* ( "'"" ('yes' | 'no') "'"" | '"' ("yes" | "no") '"' )
|
|
* [80] EncodingDecl ::= S 'encoding' Eq
|
|
* ( "'" EncName "'" | "'" EncName "'" )
|
|
* [81] EncName ::= [A-Za-z] ([A-Za-z0-9._] | '-')*
|
|
* </pre>
|
|
* <p> (The <code><?xml</code> and whitespace have already been read.)
|
|
* @return the encoding in the declaration, uppercased; or null
|
|
* @see #parseTextDecl
|
|
* @see #setupDecoding
|
|
*/
|
|
private String parseXMLDecl(boolean ignoreEncoding)
|
|
throws SAXException, IOException
|
|
{
|
|
String version;
|
|
String encodingName = null;
|
|
String standalone = null;
|
|
int flags = LIT_DISABLE_CREF | LIT_DISABLE_PE | LIT_DISABLE_EREF;
|
|
String inputEncoding = null;
|
|
|
|
switch (this.encoding)
|
|
{
|
|
case ENCODING_EXTERNAL:
|
|
case ENCODING_UTF_8:
|
|
inputEncoding = "UTF-8";
|
|
break;
|
|
case ENCODING_ISO_8859_1:
|
|
inputEncoding = "ISO-8859-1";
|
|
break;
|
|
case ENCODING_UCS_2_12:
|
|
inputEncoding = "UTF-16BE";
|
|
break;
|
|
case ENCODING_UCS_2_21:
|
|
inputEncoding = "UTF-16LE";
|
|
break;
|
|
}
|
|
|
|
// Read the version.
|
|
require("version");
|
|
parseEq();
|
|
checkLegalVersion(version = readLiteral(flags));
|
|
if (!version.equals("1.0"))
|
|
{
|
|
if (version.equals("1.1"))
|
|
{
|
|
handler.warn("expected XML version 1.0, not: " + version);
|
|
xmlVersion = XML_11;
|
|
}
|
|
else
|
|
{
|
|
error("illegal XML version", version, "1.0 or 1.1");
|
|
}
|
|
}
|
|
else
|
|
{
|
|
xmlVersion = XML_10;
|
|
}
|
|
// Try reading an encoding declaration.
|
|
boolean white = tryWhitespace();
|
|
|
|
if (tryRead("encoding"))
|
|
{
|
|
if (!white)
|
|
{
|
|
error("whitespace required before 'encoding='");
|
|
}
|
|
parseEq();
|
|
encodingName = readLiteral(flags);
|
|
if (!ignoreEncoding)
|
|
{
|
|
setupDecoding(encodingName);
|
|
}
|
|
}
|
|
|
|
// Try reading a standalone declaration
|
|
if (encodingName != null)
|
|
{
|
|
white = tryWhitespace();
|
|
}
|
|
if (tryRead("standalone"))
|
|
{
|
|
if (!white)
|
|
{
|
|
error("whitespace required before 'standalone='");
|
|
}
|
|
parseEq();
|
|
standalone = readLiteral(flags);
|
|
if ("yes".equals(standalone))
|
|
{
|
|
docIsStandalone = true;
|
|
}
|
|
else if (!"no".equals(standalone))
|
|
{
|
|
error("standalone flag must be 'yes' or 'no'");
|
|
}
|
|
}
|
|
|
|
skipWhitespace();
|
|
require("?>");
|
|
|
|
if (inputEncoding == null)
|
|
{
|
|
inputEncoding = encodingName;
|
|
}
|
|
return encodingName;
|
|
}
|
|
|
|
/**
|
|
* Parse a text declaration.
|
|
* <pre>
|
|
* [79] TextDecl ::= '<?xml' VersionInfo? EncodingDecl S? '?>'
|
|
* [80] EncodingDecl ::= S 'encoding' Eq
|
|
* ( '"' EncName '"' | "'" EncName "'" )
|
|
* [81] EncName ::= [A-Za-z] ([A-Za-z0-9._] | '-')*
|
|
* </pre>
|
|
* <p> (The <code><?xml</code>' and whitespace have already been read.)
|
|
* @return the encoding in the declaration, uppercased; or null
|
|
* @see #parseXMLDecl
|
|
* @see #setupDecoding
|
|
*/
|
|
private String parseTextDecl(boolean ignoreEncoding)
|
|
throws SAXException, IOException
|
|
{
|
|
String encodingName = null;
|
|
int flags = LIT_DISABLE_CREF | LIT_DISABLE_PE | LIT_DISABLE_EREF;
|
|
|
|
// Read an optional version.
|
|
if (tryRead ("version"))
|
|
{
|
|
String version;
|
|
parseEq();
|
|
checkLegalVersion(version = readLiteral(flags));
|
|
|
|
if (version.equals("1.1"))
|
|
{
|
|
if (xmlVersion == XML_10)
|
|
{
|
|
error("external subset has later version number.", "1.0",
|
|
version);
|
|
}
|
|
handler.warn("expected XML version 1.0, not: " + version);
|
|
xmlVersion = XML_11;
|
|
}
|
|
else if (!version.equals("1.0"))
|
|
{
|
|
error("illegal XML version", version, "1.0 or 1.1");
|
|
}
|
|
requireWhitespace();
|
|
}
|
|
|
|
// Read the encoding.
|
|
require("encoding");
|
|
parseEq();
|
|
encodingName = readLiteral(flags);
|
|
if (!ignoreEncoding)
|
|
{
|
|
setupDecoding(encodingName);
|
|
}
|
|
skipWhitespace();
|
|
require("?>");
|
|
|
|
return encodingName;
|
|
}
|
|
|
|
/**
|
|
* Sets up internal state so that we can decode an entity using the
|
|
* specified encoding. This is used when we start to read an entity
|
|
* and we have been given knowledge of its encoding before we start to
|
|
* read any data (e.g. from a SAX input source or from a MIME type).
|
|
*
|
|
* <p> It is also used after autodetection, at which point only very
|
|
* limited adjustments to the encoding may be used (switching between
|
|
* related builtin decoders).
|
|
*
|
|
* @param encodingName The name of the encoding specified by the user.
|
|
* @exception IOException if the encoding isn't supported either
|
|
* internally to this parser, or by the hosting JVM.
|
|
* @see #parseXMLDecl
|
|
* @see #parseTextDecl
|
|
*/
|
|
private void setupDecoding(String encodingName)
|
|
throws SAXException, IOException
|
|
{
|
|
encodingName = encodingName.toUpperCase();
|
|
|
|
// ENCODING_EXTERNAL indicates an encoding that wasn't
|
|
// autodetected ... we can use builtin decoders, or
|
|
// ones from the JVM (InputStreamReader).
|
|
|
|
// Otherwise we can only tweak what was autodetected, and
|
|
// only for single byte (ASCII derived) builtin encodings.
|
|
|
|
// ASCII-derived encodings
|
|
if (encoding == ENCODING_UTF_8 || encoding == ENCODING_EXTERNAL)
|
|
{
|
|
if (encodingName.equals("ISO-8859-1")
|
|
|| encodingName.equals("8859_1")
|
|
|| encodingName.equals("ISO8859_1"))
|
|
{
|
|
encoding = ENCODING_ISO_8859_1;
|
|
return;
|
|
}
|
|
else if (encodingName.equals("US-ASCII")
|
|
|| encodingName.equals("ASCII"))
|
|
{
|
|
encoding = ENCODING_ASCII;
|
|
return;
|
|
}
|
|
else if (encodingName.equals("UTF-8")
|
|
|| encodingName.equals("UTF8"))
|
|
{
|
|
encoding = ENCODING_UTF_8;
|
|
return;
|
|
}
|
|
else if (encoding != ENCODING_EXTERNAL)
|
|
{
|
|
// used to start with a new reader ...
|
|
throw new UnsupportedEncodingException(encodingName);
|
|
}
|
|
// else fallthrough ...
|
|
// it's ASCII-ish and something other than a builtin
|
|
}
|
|
|
|
// Unicode and such
|
|
if (encoding == ENCODING_UCS_2_12 || encoding == ENCODING_UCS_2_21)
|
|
{
|
|
if (!(encodingName.equals("ISO-10646-UCS-2")
|
|
|| encodingName.equals("UTF-16")
|
|
|| encodingName.equals("UTF-16BE")
|
|
|| encodingName.equals("UTF-16LE")))
|
|
{
|
|
error("unsupported Unicode encoding", encodingName, "UTF-16");
|
|
}
|
|
return;
|
|
}
|
|
|
|
// four byte encodings
|
|
if (encoding == ENCODING_UCS_4_1234
|
|
|| encoding == ENCODING_UCS_4_4321
|
|
|| encoding == ENCODING_UCS_4_2143
|
|
|| encoding == ENCODING_UCS_4_3412)
|
|
{
|
|
// Strictly: "UCS-4" == "UTF-32BE"; also, "UTF-32LE" exists
|
|
if (!encodingName.equals("ISO-10646-UCS-4"))
|
|
{
|
|
error("unsupported 32-bit encoding", encodingName,
|
|
"ISO-10646-UCS-4");
|
|
}
|
|
return;
|
|
}
|
|
|
|
// assert encoding == ENCODING_EXTERNAL
|
|
// if (encoding != ENCODING_EXTERNAL)
|
|
// throw new RuntimeException ("encoding = " + encoding);
|
|
|
|
if (encodingName.equals("UTF-16BE"))
|
|
{
|
|
encoding = ENCODING_UCS_2_12;
|
|
return;
|
|
}
|
|
if (encodingName.equals("UTF-16LE"))
|
|
{
|
|
encoding = ENCODING_UCS_2_21;
|
|
return;
|
|
}
|
|
|
|
// We couldn't use the builtin decoders at all. But we can try to
|
|
// create a reader, since we haven't messed up buffering. Tweak
|
|
// the encoding name if necessary.
|
|
|
|
if (encodingName.equals("UTF-16")
|
|
|| encodingName.equals("ISO-10646-UCS-2"))
|
|
{
|
|
encodingName = "Unicode";
|
|
}
|
|
// Ignoring all the EBCDIC aliases here
|
|
|
|
reader = new InputStreamReader(is, encodingName);
|
|
sourceType = INPUT_READER;
|
|
}
|
|
|
|
/**
|
|
* Parse miscellaneous markup outside the document element and DOCTYPE
|
|
* declaration.
|
|
* <pre>
|
|
* [27] Misc ::= Comment | PI | S
|
|
* </pre>
|
|
*/
|
|
private void parseMisc()
|
|
throws Exception
|
|
{
|
|
while (true)
|
|
{
|
|
skipWhitespace();
|
|
if (tryRead(startDelimPI))
|
|
{
|
|
parsePI();
|
|
}
|
|
else if (tryRead(startDelimComment))
|
|
{
|
|
parseComment();
|
|
}
|
|
else
|
|
{
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Parse a document type declaration.
|
|
* <pre>
|
|
* [28] doctypedecl ::= '<!DOCTYPE' S Name (S ExternalID)? S?
|
|
* ('[' (markupdecl | PEReference | S)* ']' S?)? '>'
|
|
* </pre>
|
|
* <p> (The <code><!DOCTYPE</code> has already been read.)
|
|
*/
|
|
private void parseDoctypedecl()
|
|
throws Exception
|
|
{
|
|
String rootName;
|
|
ExternalIdentifiers ids;
|
|
|
|
// Read the document type name.
|
|
requireWhitespace();
|
|
rootName = readNmtoken(true);
|
|
|
|
// Read the External subset's IDs
|
|
skipWhitespace();
|
|
ids = readExternalIds(false, true);
|
|
|
|
// report (a) declaration of name, (b) lexical info (ids)
|
|
handler.doctypeDecl(rootName, ids.publicId, ids.systemId);
|
|
|
|
// Internal subset is parsed first, if present
|
|
skipWhitespace();
|
|
if (tryRead('['))
|
|
{
|
|
|
|
// loop until the subset ends
|
|
while (true)
|
|
{
|
|
doReport = expandPE = true;
|
|
skipWhitespace();
|
|
doReport = expandPE = false;
|
|
if (tryRead(']'))
|
|
{
|
|
break; // end of subset
|
|
}
|
|
else
|
|
{
|
|
// WFC, PEs in internal subset (only between decls)
|
|
peIsError = expandPE = true;
|
|
parseMarkupdecl();
|
|
peIsError = expandPE = false;
|
|
}
|
|
}
|
|
}
|
|
skipWhitespace();
|
|
require('>');
|
|
|
|
// Read the external subset, if any
|
|
InputSource subset;
|
|
|
|
if (ids.systemId == null)
|
|
{
|
|
subset = handler.getExternalSubset(rootName,
|
|
handler.getSystemId());
|
|
}
|
|
else
|
|
{
|
|
subset = null;
|
|
}
|
|
if (ids.systemId != null || subset != null)
|
|
{
|
|
pushString(null, ">");
|
|
|
|
// NOTE: [dtd] is so we say what SAX2 expects,
|
|
// though it's misleading (subset, not entire dtd)
|
|
if (ids.systemId != null)
|
|
{
|
|
pushURL(true, "[dtd]", ids, null, null, null, true);
|
|
}
|
|
else
|
|
{
|
|
handler.warn("modifying document by adding external subset");
|
|
pushURL(true, "[dtd]",
|
|
new ExternalIdentifiers(subset.getPublicId(),
|
|
subset.getSystemId(),
|
|
null),
|
|
subset.getCharacterStream(),
|
|
subset.getByteStream(),
|
|
subset.getEncoding(),
|
|
false);
|
|
}
|
|
|
|
// Loop until we end up back at '>'
|
|
while (true)
|
|
{
|
|
doReport = expandPE = true;
|
|
skipWhitespace();
|
|
doReport = expandPE = false;
|
|
if (tryRead('>'))
|
|
{
|
|
break;
|
|
}
|
|
else
|
|
{
|
|
expandPE = true;
|
|
parseMarkupdecl();
|
|
expandPE = false;
|
|
}
|
|
}
|
|
|
|
// the ">" string isn't popped yet
|
|
if (inputStack.size() != 1)
|
|
{
|
|
error("external subset has unmatched '>'");
|
|
}
|
|
}
|
|
|
|
// done dtd
|
|
handler.endDoctype();
|
|
expandPE = false;
|
|
doReport = true;
|
|
}
|
|
|
|
/**
|
|
* Parse a markup declaration in the internal or external DTD subset.
|
|
* <pre>
|
|
* [29] markupdecl ::= elementdecl | Attlistdecl | EntityDecl
|
|
* | NotationDecl | PI | Comment
|
|
* [30] extSubsetDecl ::= (markupdecl | conditionalSect
|
|
* | PEReference | S) *
|
|
* </pre>
|
|
* <p> Reading toplevel PE references is handled as a lexical issue
|
|
* by the caller, as is whitespace.
|
|
*/
|
|
private void parseMarkupdecl()
|
|
throws Exception
|
|
{
|
|
char[] saved = null;
|
|
boolean savedPE = expandPE;
|
|
|
|
// prevent "<%foo;" and ensures saved entity is right
|
|
require('<');
|
|
unread('<');
|
|
expandPE = false;
|
|
|
|
if (tryRead("<!ELEMENT"))
|
|
{
|
|
saved = readBuffer;
|
|
expandPE = savedPE;
|
|
parseElementDecl();
|
|
}
|
|
else if (tryRead("<!ATTLIST"))
|
|
{
|
|
saved = readBuffer;
|
|
expandPE = savedPE;
|
|
parseAttlistDecl();
|
|
}
|
|
else if (tryRead("<!ENTITY"))
|
|
{
|
|
saved = readBuffer;
|
|
expandPE = savedPE;
|
|
parseEntityDecl();
|
|
}
|
|
else if (tryRead("<!NOTATION"))
|
|
{
|
|
saved = readBuffer;
|
|
expandPE = savedPE;
|
|
parseNotationDecl();
|
|
}
|
|
else if (tryRead(startDelimPI))
|
|
{
|
|
saved = readBuffer;
|
|
expandPE = savedPE;
|
|
parsePI();
|
|
}
|
|
else if (tryRead(startDelimComment))
|
|
{
|
|
saved = readBuffer;
|
|
expandPE = savedPE;
|
|
parseComment();
|
|
}
|
|
else if (tryRead("<!["))
|
|
{
|
|
saved = readBuffer;
|
|
expandPE = savedPE;
|
|
if (inputStack.size() > 0)
|
|
{
|
|
parseConditionalSect(saved);
|
|
}
|
|
else
|
|
{
|
|
error("conditional sections illegal in internal subset");
|
|
}
|
|
}
|
|
else
|
|
{
|
|
error("expected markup declaration");
|
|
}
|
|
|
|
// VC: Proper Decl/PE Nesting
|
|
if (readBuffer != saved)
|
|
{
|
|
handler.verror("Illegal Declaration/PE nesting");
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Parse an element, with its tags.
|
|
* <pre>
|
|
* [39] element ::= EmptyElementTag | STag content ETag
|
|
* [40] STag ::= '<' Name (S Attribute)* S? '>'
|
|
* [44] EmptyElementTag ::= '<' Name (S Attribute)* S? '/>'
|
|
* </pre>
|
|
* <p> (The '<' has already been read.)
|
|
* <p>NOTE: this method actually chains onto parseContent (), if necessary,
|
|
* and parseContent () will take care of calling parseETag ().
|
|
*/
|
|
private void parseElement(boolean maybeGetSubset)
|
|
throws Exception
|
|
{
|
|
String gi;
|
|
char c;
|
|
int oldElementContent = currentElementContent;
|
|
String oldElement = currentElement;
|
|
ElementDecl element;
|
|
|
|
// This is the (global) counter for the
|
|
// array of specified attributes.
|
|
tagAttributePos = 0;
|
|
|
|
// Read the element type name.
|
|
gi = readNmtoken(true);
|
|
|
|
// If we saw no DTD, and this is the document root element,
|
|
// let the application modify the input stream by providing one.
|
|
if (maybeGetSubset)
|
|
{
|
|
InputSource subset = handler.getExternalSubset(gi,
|
|
handler.getSystemId());
|
|
if (subset != null)
|
|
{
|
|
String publicId = subset.getPublicId();
|
|
String systemId = subset.getSystemId();
|
|
|
|
handler.warn("modifying document by adding DTD");
|
|
handler.doctypeDecl(gi, publicId, systemId);
|
|
pushString(null, ">");
|
|
|
|
// NOTE: [dtd] is so we say what SAX2 expects,
|
|
// though it's misleading (subset, not entire dtd)
|
|
pushURL(true, "[dtd]",
|
|
new ExternalIdentifiers(publicId, systemId, null),
|
|
subset.getCharacterStream(),
|
|
subset.getByteStream(),
|
|
subset.getEncoding(),
|
|
false);
|
|
|
|
// Loop until we end up back at '>'
|
|
while (true)
|
|
{
|
|
doReport = expandPE = true;
|
|
skipWhitespace();
|
|
doReport = expandPE = false;
|
|
if (tryRead('>'))
|
|
{
|
|
break;
|
|
}
|
|
else
|
|
{
|
|
expandPE = true;
|
|
parseMarkupdecl();
|
|
expandPE = false;
|
|
}
|
|
}
|
|
|
|
// the ">" string isn't popped yet
|
|
if (inputStack.size() != 1)
|
|
{
|
|
error("external subset has unmatched '>'");
|
|
}
|
|
|
|
handler.endDoctype();
|
|
}
|
|
}
|
|
|
|
// Determine the current content type.
|
|
currentElement = gi;
|
|
element = (ElementDecl) elementInfo.get(gi);
|
|
currentElementContent = getContentType(element, CONTENT_ANY);
|
|
|
|
// Read the attributes, if any.
|
|
// After this loop, "c" is the closing delimiter.
|
|
boolean white = tryWhitespace();
|
|
c = readCh();
|
|
while (c != '/' && c != '>')
|
|
{
|
|
unread(c);
|
|
if (!white)
|
|
{
|
|
error("need whitespace between attributes");
|
|
}
|
|
parseAttribute(gi);
|
|
white = tryWhitespace();
|
|
c = readCh();
|
|
}
|
|
|
|
// Supply any defaulted attributes.
|
|
Iterator atts = declaredAttributes(element);
|
|
if (atts != null)
|
|
{
|
|
String aname;
|
|
loop:
|
|
while (atts.hasNext())
|
|
{
|
|
aname = (String) atts.next();
|
|
// See if it was specified.
|
|
for (int i = 0; i < tagAttributePos; i++)
|
|
{
|
|
if (tagAttributes[i] == aname)
|
|
{
|
|
continue loop;
|
|
}
|
|
}
|
|
// ... or has a default
|
|
String value = getAttributeDefaultValue(gi, aname);
|
|
|
|
if (value == null)
|
|
{
|
|
continue;
|
|
}
|
|
handler.attribute(aname, value, false);
|
|
}
|
|
}
|
|
|
|
// Figure out if this is a start tag
|
|
// or an empty element, and dispatch an
|
|
// event accordingly.
|
|
switch (c)
|
|
{
|
|
case '>':
|
|
handler.startElement(gi);
|
|
parseContent();
|
|
break;
|
|
case '/':
|
|
require('>');
|
|
handler.startElement(gi);
|
|
handler.endElement(gi);
|
|
break;
|
|
}
|
|
|
|
// Restore the previous state.
|
|
currentElement = oldElement;
|
|
currentElementContent = oldElementContent;
|
|
}
|
|
|
|
/**
|
|
* Parse an attribute assignment.
|
|
* <pre>
|
|
* [41] Attribute ::= Name Eq AttValue
|
|
* </pre>
|
|
* @param name The name of the attribute's element.
|
|
* @see SAXDriver#attribute
|
|
*/
|
|
private void parseAttribute(String name)
|
|
throws Exception
|
|
{
|
|
String aname;
|
|
String type;
|
|
String value;
|
|
int flags = LIT_ATTRIBUTE | LIT_ENTITY_REF;
|
|
|
|
// Read the attribute name.
|
|
aname = readNmtoken(true);
|
|
type = getAttributeType(name, aname);
|
|
|
|
// Parse '='
|
|
parseEq();
|
|
|
|
// Read the value, normalizing whitespace
|
|
// unless it is CDATA.
|
|
if (handler.stringInterning)
|
|
{
|
|
if (type == "CDATA" || type == null)
|
|
{
|
|
value = readLiteral(flags);
|
|
}
|
|
else
|
|
{
|
|
value = readLiteral(flags | LIT_NORMALIZE);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (type == null || type.equals("CDATA"))
|
|
{
|
|
value = readLiteral(flags);
|
|
}
|
|
else
|
|
{
|
|
value = readLiteral(flags | LIT_NORMALIZE);
|
|
}
|
|
}
|
|
|
|
// WFC: no duplicate attributes
|
|
for (int i = 0; i < tagAttributePos; i++)
|
|
{
|
|
if (aname.equals(tagAttributes [i]))
|
|
{
|
|
error("duplicate attribute", aname, null);
|
|
}
|
|
}
|
|
|
|
// Inform the handler about the
|
|
// attribute.
|
|
handler.attribute(aname, value, true);
|
|
dataBufferPos = 0;
|
|
|
|
// Note that the attribute has been
|
|
// specified.
|
|
if (tagAttributePos == tagAttributes.length)
|
|
{
|
|
String newAttrib[] = new String[tagAttributes.length * 2];
|
|
System.arraycopy(tagAttributes, 0, newAttrib, 0, tagAttributePos);
|
|
tagAttributes = newAttrib;
|
|
}
|
|
tagAttributes[tagAttributePos++] = aname;
|
|
}
|
|
|
|
/**
|
|
* Parse an equals sign surrounded by optional whitespace.
|
|
* <pre>
|
|
* [25] Eq ::= S? '=' S?
|
|
* </pre>
|
|
*/
|
|
private void parseEq()
|
|
throws SAXException, IOException
|
|
{
|
|
skipWhitespace();
|
|
require('=');
|
|
skipWhitespace();
|
|
}
|
|
|
|
/**
|
|
* Parse an end tag.
|
|
* <pre>
|
|
* [42] ETag ::= '</' Name S? '>'
|
|
* </pre>
|
|
* <p>NOTE: parseContent () chains to here, we already read the
|
|
* "</".
|
|
*/
|
|
private void parseETag()
|
|
throws Exception
|
|
{
|
|
require(currentElement);
|
|
skipWhitespace();
|
|
require('>');
|
|
handler.endElement(currentElement);
|
|
// not re-reporting any SAXException re bogus end tags,
|
|
// even though that diagnostic might be clearer ...
|
|
}
|
|
|
|
/**
|
|
* Parse the content of an element.
|
|
* <pre>
|
|
* [43] content ::= (element | CharData | Reference
|
|
* | CDSect | PI | Comment)*
|
|
* [67] Reference ::= EntityRef | CharRef
|
|
* </pre>
|
|
* <p> NOTE: consumes ETtag.
|
|
*/
|
|
private void parseContent()
|
|
throws Exception
|
|
{
|
|
char c;
|
|
|
|
while (true)
|
|
{
|
|
// consume characters (or ignorable whitspace) until delimiter
|
|
parseCharData();
|
|
|
|
// Handle delimiters
|
|
c = readCh();
|
|
switch (c)
|
|
{
|
|
case '&': // Found "&"
|
|
c = readCh();
|
|
if (c == '#')
|
|
{
|
|
parseCharRef();
|
|
}
|
|
else
|
|
{
|
|
unread(c);
|
|
parseEntityRef(true);
|
|
}
|
|
isDirtyCurrentElement = true;
|
|
break;
|
|
|
|
case '<': // Found "<"
|
|
dataBufferFlush();
|
|
c = readCh();
|
|
switch (c)
|
|
{
|
|
case '!': // Found "<!"
|
|
c = readCh();
|
|
switch (c)
|
|
{
|
|
case '-': // Found "<!-"
|
|
require('-');
|
|
isDirtyCurrentElement = false;
|
|
parseComment();
|
|
break;
|
|
case '[': // Found "<!["
|
|
isDirtyCurrentElement = false;
|
|
require("CDATA[");
|
|
handler.startCDATA();
|
|
inCDATA = true;
|
|
parseCDSect();
|
|
inCDATA = false;
|
|
handler.endCDATA();
|
|
break;
|
|
default:
|
|
error("expected comment or CDATA section", c, null);
|
|
break;
|
|
}
|
|
break;
|
|
|
|
case '?': // Found "<?"
|
|
isDirtyCurrentElement = false;
|
|
parsePI();
|
|
break;
|
|
|
|
case '/': // Found "</"
|
|
isDirtyCurrentElement = false;
|
|
parseETag();
|
|
return;
|
|
|
|
default: // Found "<" followed by something else
|
|
isDirtyCurrentElement = false;
|
|
unread(c);
|
|
parseElement(false);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Parse an element type declaration.
|
|
* <pre>
|
|
* [45] elementdecl ::= '<!ELEMENT' S Name S contentspec S? '>'
|
|
* </pre>
|
|
* <p> NOTE: the '<!ELEMENT' has already been read.
|
|
*/
|
|
private void parseElementDecl()
|
|
throws Exception
|
|
{
|
|
String name;
|
|
|
|
requireWhitespace();
|
|
// Read the element type name.
|
|
name = readNmtoken(true);
|
|
|
|
requireWhitespace();
|
|
// Read the content model.
|
|
parseContentspec(name);
|
|
|
|
skipWhitespace();
|
|
require('>');
|
|
}
|
|
|
|
/**
|
|
* Content specification.
|
|
* <pre>
|
|
* [46] contentspec ::= 'EMPTY' | 'ANY' | Mixed | elements
|
|
* </pre>
|
|
*/
|
|
private void parseContentspec(String name)
|
|
throws Exception
|
|
{
|
|
// FIXME: move elementDecl() into setElement(), pass EMTPY/ANY ...
|
|
if (tryRead("EMPTY"))
|
|
{
|
|
setElement(name, CONTENT_EMPTY, null, null);
|
|
if (!skippedPE)
|
|
{
|
|
handler.getDeclHandler().elementDecl(name, "EMPTY");
|
|
}
|
|
return;
|
|
}
|
|
else if (tryRead("ANY"))
|
|
{
|
|
setElement(name, CONTENT_ANY, null, null);
|
|
if (!skippedPE)
|
|
{
|
|
handler.getDeclHandler().elementDecl(name, "ANY");
|
|
}
|
|
return;
|
|
}
|
|
else
|
|
{
|
|
String model;
|
|
char[] saved;
|
|
|
|
require('(');
|
|
saved = readBuffer;
|
|
dataBufferAppend('(');
|
|
skipWhitespace();
|
|
if (tryRead("#PCDATA"))
|
|
{
|
|
dataBufferAppend("#PCDATA");
|
|
parseMixed(saved);
|
|
model = dataBufferToString();
|
|
setElement(name, CONTENT_MIXED, model, null);
|
|
}
|
|
else
|
|
{
|
|
parseElements(saved);
|
|
model = dataBufferToString();
|
|
setElement(name, CONTENT_ELEMENTS, model, null);
|
|
}
|
|
if (!skippedPE)
|
|
{
|
|
handler.getDeclHandler().elementDecl(name, model);
|
|
}
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Parse an element-content model.
|
|
* <pre>
|
|
* [47] elements ::= (choice | seq) ('?' | '*' | '+')?
|
|
* [49] choice ::= '(' S? cp (S? '|' S? cp)+ S? ')'
|
|
* [50] seq ::= '(' S? cp (S? ',' S? cp)* S? ')'
|
|
* </pre>
|
|
*
|
|
* <p> NOTE: the opening '(' and S have already been read.
|
|
*
|
|
* @param saved Buffer for entity that should have the terminal ')'
|
|
*/
|
|
private void parseElements(char[] saved)
|
|
throws Exception
|
|
{
|
|
char c;
|
|
char sep;
|
|
|
|
// Parse the first content particle
|
|
skipWhitespace();
|
|
parseCp();
|
|
|
|
// Check for end or for a separator.
|
|
skipWhitespace();
|
|
c = readCh();
|
|
switch (c)
|
|
{
|
|
case ')':
|
|
// VC: Proper Group/PE Nesting
|
|
if (readBuffer != saved)
|
|
{
|
|
handler.verror("Illegal Group/PE nesting");
|
|
}
|
|
|
|
dataBufferAppend(')');
|
|
c = readCh();
|
|
switch (c)
|
|
{
|
|
case '*':
|
|
case '+':
|
|
case '?':
|
|
dataBufferAppend(c);
|
|
break;
|
|
default:
|
|
unread(c);
|
|
}
|
|
return;
|
|
case ',': // Register the separator.
|
|
case '|':
|
|
sep = c;
|
|
dataBufferAppend(c);
|
|
break;
|
|
default:
|
|
error("bad separator in content model", c, null);
|
|
return;
|
|
}
|
|
|
|
// Parse the rest of the content model.
|
|
while (true)
|
|
{
|
|
skipWhitespace();
|
|
parseCp();
|
|
skipWhitespace();
|
|
c = readCh();
|
|
if (c == ')')
|
|
{
|
|
// VC: Proper Group/PE Nesting
|
|
if (readBuffer != saved)
|
|
{
|
|
handler.verror("Illegal Group/PE nesting");
|
|
}
|
|
|
|
dataBufferAppend(')');
|
|
break;
|
|
}
|
|
else if (c != sep)
|
|
{
|
|
error("bad separator in content model", c, null);
|
|
return;
|
|
}
|
|
else
|
|
{
|
|
dataBufferAppend(c);
|
|
}
|
|
}
|
|
|
|
// Check for the occurrence indicator.
|
|
c = readCh();
|
|
switch (c)
|
|
{
|
|
case '?':
|
|
case '*':
|
|
case '+':
|
|
dataBufferAppend(c);
|
|
return;
|
|
default:
|
|
unread(c);
|
|
return;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Parse a content particle.
|
|
* <pre>
|
|
* [48] cp ::= (Name | choice | seq) ('?' | '*' | '+')?
|
|
* </pre>
|
|
*/
|
|
private void parseCp()
|
|
throws Exception
|
|
{
|
|
if (tryRead('('))
|
|
{
|
|
dataBufferAppend('(');
|
|
parseElements(readBuffer);
|
|
}
|
|
else
|
|
{
|
|
dataBufferAppend(readNmtoken(true));
|
|
char c = readCh();
|
|
switch (c)
|
|
{
|
|
case '?':
|
|
case '*':
|
|
case '+':
|
|
dataBufferAppend(c);
|
|
break;
|
|
default:
|
|
unread(c);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Parse mixed content.
|
|
* <pre>
|
|
* [51] Mixed ::= '(' S? ( '#PCDATA' (S? '|' S? Name)*) S? ')*'
|
|
* | '(' S? ('#PCDATA') S? ')'
|
|
* </pre>
|
|
*
|
|
* @param saved Buffer for entity that should have the terminal ')'
|
|
*/
|
|
private void parseMixed(char[] saved)
|
|
throws Exception
|
|
{
|
|
// Check for PCDATA alone.
|
|
skipWhitespace();
|
|
if (tryRead(')'))
|
|
{
|
|
// VC: Proper Group/PE Nesting
|
|
if (readBuffer != saved)
|
|
{
|
|
handler.verror("Illegal Group/PE nesting");
|
|
}
|
|
|
|
dataBufferAppend(")*");
|
|
tryRead('*');
|
|
return;
|
|
}
|
|
|
|
// Parse mixed content.
|
|
skipWhitespace();
|
|
while (!tryRead(")"))
|
|
{
|
|
require('|');
|
|
dataBufferAppend('|');
|
|
skipWhitespace();
|
|
dataBufferAppend(readNmtoken(true));
|
|
skipWhitespace();
|
|
}
|
|
|
|
// VC: Proper Group/PE Nesting
|
|
if (readBuffer != saved)
|
|
{
|
|
handler.verror("Illegal Group/PE nesting");
|
|
}
|
|
|
|
require('*');
|
|
dataBufferAppend(")*");
|
|
}
|
|
|
|
/**
|
|
* Parse an attribute list declaration.
|
|
* <pre>
|
|
* [52] AttlistDecl ::= '<!ATTLIST' S Name AttDef* S? '>'
|
|
* </pre>
|
|
* <p>NOTE: the '<!ATTLIST' has already been read.
|
|
*/
|
|
private void parseAttlistDecl()
|
|
throws Exception
|
|
{
|
|
String elementName;
|
|
|
|
requireWhitespace();
|
|
elementName = readNmtoken(true);
|
|
boolean white = tryWhitespace();
|
|
while (!tryRead('>'))
|
|
{
|
|
if (!white)
|
|
{
|
|
error("whitespace required before attribute definition");
|
|
}
|
|
parseAttDef(elementName);
|
|
white = tryWhitespace();
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Parse a single attribute definition.
|
|
* <pre>
|
|
* [53] AttDef ::= S Name S AttType S DefaultDecl
|
|
* </pre>
|
|
*/
|
|
private void parseAttDef(String elementName)
|
|
throws Exception
|
|
{
|
|
String name;
|
|
String type;
|
|
String enumer = null;
|
|
|
|
// Read the attribute name.
|
|
name = readNmtoken(true);
|
|
|
|
// Read the attribute type.
|
|
requireWhitespace();
|
|
type = readAttType();
|
|
|
|
// Get the string of enumerated values if necessary.
|
|
if (handler.stringInterning)
|
|
{
|
|
if ("ENUMERATION" == type || "NOTATION" == type)
|
|
{
|
|
enumer = dataBufferToString();
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if ("ENUMERATION".equals(type) || "NOTATION".equals(type))
|
|
{
|
|
enumer = dataBufferToString();
|
|
}
|
|
}
|
|
|
|
// Read the default value.
|
|
requireWhitespace();
|
|
parseDefault(elementName, name, type, enumer);
|
|
}
|
|
|
|
/**
|
|
* Parse the attribute type.
|
|
* <pre>
|
|
* [54] AttType ::= StringType | TokenizedType | EnumeratedType
|
|
* [55] StringType ::= 'CDATA'
|
|
* [56] TokenizedType ::= 'ID' | 'IDREF' | 'IDREFS' | 'ENTITY'
|
|
* | 'ENTITIES' | 'NMTOKEN' | 'NMTOKENS'
|
|
* [57] EnumeratedType ::= NotationType | Enumeration
|
|
* </pre>
|
|
*/
|
|
private String readAttType()
|
|
throws Exception
|
|
{
|
|
if (tryRead('('))
|
|
{
|
|
parseEnumeration(false);
|
|
return "ENUMERATION";
|
|
}
|
|
else
|
|
{
|
|
String typeString = readNmtoken(true);
|
|
if (handler.stringInterning)
|
|
{
|
|
if ("NOTATION" == typeString)
|
|
{
|
|
parseNotationType();
|
|
return typeString;
|
|
}
|
|
else if ("CDATA" == typeString
|
|
|| "ID" == typeString
|
|
|| "IDREF" == typeString
|
|
|| "IDREFS" == typeString
|
|
|| "ENTITY" == typeString
|
|
|| "ENTITIES" == typeString
|
|
|| "NMTOKEN" == typeString
|
|
|| "NMTOKENS" == typeString)
|
|
{
|
|
return typeString;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if ("NOTATION".equals(typeString))
|
|
{
|
|
parseNotationType();
|
|
return typeString;
|
|
}
|
|
else if ("CDATA".equals(typeString)
|
|
|| "ID".equals(typeString)
|
|
|| "IDREF".equals(typeString)
|
|
|| "IDREFS".equals(typeString)
|
|
|| "ENTITY".equals(typeString)
|
|
|| "ENTITIES".equals(typeString)
|
|
|| "NMTOKEN".equals(typeString)
|
|
|| "NMTOKENS".equals(typeString))
|
|
{
|
|
return typeString;
|
|
}
|
|
}
|
|
error("illegal attribute type", typeString, null);
|
|
return null;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Parse an enumeration.
|
|
* <pre>
|
|
* [59] Enumeration ::= '(' S? Nmtoken (S? '|' S? Nmtoken)* S? ')'
|
|
* </pre>
|
|
* <p>NOTE: the '(' has already been read.
|
|
*/
|
|
private void parseEnumeration(boolean isNames)
|
|
throws Exception
|
|
{
|
|
dataBufferAppend('(');
|
|
|
|
// Read the first token.
|
|
skipWhitespace();
|
|
dataBufferAppend(readNmtoken(isNames));
|
|
// Read the remaining tokens.
|
|
skipWhitespace();
|
|
while (!tryRead(')'))
|
|
{
|
|
require('|');
|
|
dataBufferAppend('|');
|
|
skipWhitespace();
|
|
dataBufferAppend(readNmtoken (isNames));
|
|
skipWhitespace();
|
|
}
|
|
dataBufferAppend(')');
|
|
}
|
|
|
|
/**
|
|
* Parse a notation type for an attribute.
|
|
* <pre>
|
|
* [58] NotationType ::= 'NOTATION' S '(' S? NameNtoks
|
|
* (S? '|' S? name)* S? ')'
|
|
* </pre>
|
|
* <p>NOTE: the 'NOTATION' has already been read
|
|
*/
|
|
private void parseNotationType()
|
|
throws Exception
|
|
{
|
|
requireWhitespace();
|
|
require('(');
|
|
|
|
parseEnumeration(true);
|
|
}
|
|
|
|
/**
|
|
* Parse the default value for an attribute.
|
|
* <pre>
|
|
* [60] DefaultDecl ::= '#REQUIRED' | '#IMPLIED'
|
|
* | (('#FIXED' S)? AttValue)
|
|
* </pre>
|
|
*/
|
|
private void parseDefault(String elementName, String name,
|
|
String type, String enumer)
|
|
throws Exception
|
|
{
|
|
int valueType = ATTRIBUTE_DEFAULT_SPECIFIED;
|
|
String value = null;
|
|
int flags = LIT_ATTRIBUTE;
|
|
boolean saved = expandPE;
|
|
String defaultType = null;
|
|
|
|
// LIT_ATTRIBUTE forces '<' checks now (ASAP) and turns whitespace
|
|
// chars to spaces (doesn't matter when that's done if it doesn't
|
|
// interfere with char refs expanding to whitespace).
|
|
|
|
if (!skippedPE)
|
|
{
|
|
flags |= LIT_ENTITY_REF;
|
|
if (handler.stringInterning)
|
|
{
|
|
if ("CDATA" != type)
|
|
{
|
|
flags |= LIT_NORMALIZE;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (!"CDATA".equals(type))
|
|
{
|
|
flags |= LIT_NORMALIZE;
|
|
}
|
|
}
|
|
}
|
|
|
|
expandPE = false;
|
|
if (tryRead('#'))
|
|
{
|
|
if (tryRead("FIXED"))
|
|
{
|
|
defaultType = "#FIXED";
|
|
valueType = ATTRIBUTE_DEFAULT_FIXED;
|
|
requireWhitespace();
|
|
value = readLiteral(flags);
|
|
}
|
|
else if (tryRead("REQUIRED"))
|
|
{
|
|
defaultType = "#REQUIRED";
|
|
valueType = ATTRIBUTE_DEFAULT_REQUIRED;
|
|
}
|
|
else if (tryRead("IMPLIED"))
|
|
{
|
|
defaultType = "#IMPLIED";
|
|
valueType = ATTRIBUTE_DEFAULT_IMPLIED;
|
|
}
|
|
else
|
|
{
|
|
error("illegal keyword for attribute default value");
|
|
}
|
|
}
|
|
else
|
|
{
|
|
value = readLiteral(flags);
|
|
}
|
|
expandPE = saved;
|
|
setAttribute(elementName, name, type, enumer, value, valueType);
|
|
if (handler.stringInterning)
|
|
{
|
|
if ("ENUMERATION" == type)
|
|
{
|
|
type = enumer;
|
|
}
|
|
else if ("NOTATION" == type)
|
|
{
|
|
type = "NOTATION " + enumer;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if ("ENUMERATION".equals(type))
|
|
{
|
|
type = enumer;
|
|
}
|
|
else if ("NOTATION".equals(type))
|
|
{
|
|
type = "NOTATION " + enumer;
|
|
}
|
|
}
|
|
if (!skippedPE)
|
|
{
|
|
handler.getDeclHandler().attributeDecl(elementName, name, type,
|
|
defaultType, value);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Parse a conditional section.
|
|
* <pre>
|
|
* [61] conditionalSect ::= includeSect || ignoreSect
|
|
* [62] includeSect ::= '<![' S? 'INCLUDE' S? '['
|
|
* extSubsetDecl ']]>'
|
|
* [63] ignoreSect ::= '<![' S? 'IGNORE' S? '['
|
|
* ignoreSectContents* ']]>'
|
|
* [64] ignoreSectContents ::= Ignore
|
|
* ('<![' ignoreSectContents* ']]>' Ignore )*
|
|
* [65] Ignore ::= Char* - (Char* ( '<![' | ']]>') Char* )
|
|
* </pre>
|
|
* <p> NOTE: the '>![' has already been read.
|
|
*/
|
|
private void parseConditionalSect(char[] saved)
|
|
throws Exception
|
|
{
|
|
skipWhitespace();
|
|
if (tryRead("INCLUDE"))
|
|
{
|
|
skipWhitespace();
|
|
require('[');
|
|
// VC: Proper Conditional Section/PE Nesting
|
|
if (readBuffer != saved)
|
|
{
|
|
handler.verror("Illegal Conditional Section/PE nesting");
|
|
}
|
|
skipWhitespace();
|
|
while (!tryRead("]]>"))
|
|
{
|
|
parseMarkupdecl();
|
|
skipWhitespace();
|
|
}
|
|
}
|
|
else if (tryRead("IGNORE"))
|
|
{
|
|
skipWhitespace();
|
|
require('[');
|
|
// VC: Proper Conditional Section/PE Nesting
|
|
if (readBuffer != saved)
|
|
{
|
|
handler.verror("Illegal Conditional Section/PE nesting");
|
|
}
|
|
int nesting = 1;
|
|
char c;
|
|
expandPE = false;
|
|
for (int nest = 1; nest > 0; )
|
|
{
|
|
c = readCh();
|
|
switch (c)
|
|
{
|
|
case '<':
|
|
if (tryRead("!["))
|
|
{
|
|
nest++;
|
|
}
|
|
break;
|
|
case ']':
|
|
if (tryRead("]>"))
|
|
{
|
|
nest--;
|
|
}
|
|
}
|
|
}
|
|
expandPE = true;
|
|
}
|
|
else
|
|
{
|
|
error("conditional section must begin with INCLUDE or IGNORE");
|
|
}
|
|
}
|
|
|
|
private void parseCharRef()
|
|
throws SAXException, IOException
|
|
{
|
|
parseCharRef(true /* do flushDataBuffer by default */);
|
|
}
|
|
|
|
/**
|
|
* Try to read a character reference without consuming data from buffer.
|
|
* <pre>
|
|
* [66] CharRef ::= '&#' [0-9]+ ';' | '&#x' [0-9a-fA-F]+ ';'
|
|
* </pre>
|
|
* <p>NOTE: the '&#' has already been read.
|
|
*/
|
|
private void tryReadCharRef()
|
|
throws SAXException, IOException
|
|
{
|
|
int value = 0;
|
|
char c;
|
|
|
|
if (tryRead('x'))
|
|
{
|
|
loop1:
|
|
while (true)
|
|
{
|
|
c = readCh();
|
|
if (c == ';')
|
|
{
|
|
break loop1;
|
|
}
|
|
else
|
|
{
|
|
int n = Character.digit(c, 16);
|
|
if (n == -1)
|
|
{
|
|
error("illegal character in character reference", c, null);
|
|
break loop1;
|
|
}
|
|
value *= 16;
|
|
value += n;
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
loop2:
|
|
while (true)
|
|
{
|
|
c = readCh();
|
|
if (c == ';')
|
|
{
|
|
break loop2;
|
|
}
|
|
else
|
|
{
|
|
int n = Character.digit(c, 10);
|
|
if (n == -1)
|
|
{
|
|
error("illegal character in character reference", c, null);
|
|
break loop2;
|
|
}
|
|
value *= 10;
|
|
value += n;
|
|
}
|
|
}
|
|
}
|
|
|
|
// check for character refs being legal XML
|
|
if ((value < 0x0020
|
|
&& ! (value == '\n' || value == '\t' || value == '\r'))
|
|
|| (value >= 0xD800 && value <= 0xDFFF)
|
|
|| value == 0xFFFE || value == 0xFFFF
|
|
|| value > 0x0010ffff)
|
|
{
|
|
error("illegal XML character reference U+"
|
|
+ Integer.toHexString(value));
|
|
}
|
|
|
|
// Check for surrogates: 00000000 0000xxxx yyyyyyyy zzzzzzzz
|
|
// (1101|10xx|xxyy|yyyy + 1101|11yy|zzzz|zzzz:
|
|
if (value > 0x0010ffff)
|
|
{
|
|
// too big for surrogate
|
|
error("character reference " + value + " is too large for UTF-16",
|
|
Integer.toString(value), null);
|
|
}
|
|
|
|
}
|
|
|
|
/**
|
|
* Read and interpret a character reference.
|
|
* <pre>
|
|
* [66] CharRef ::= '&#' [0-9]+ ';' | '&#x' [0-9a-fA-F]+ ';'
|
|
* </pre>
|
|
* <p>NOTE: the '&#' has already been read.
|
|
*/
|
|
private void parseCharRef(boolean doFlush)
|
|
throws SAXException, IOException
|
|
{
|
|
int value = 0;
|
|
char c;
|
|
|
|
if (tryRead('x'))
|
|
{
|
|
loop1:
|
|
while (true)
|
|
{
|
|
c = readCh();
|
|
if (c == ';')
|
|
{
|
|
break loop1;
|
|
}
|
|
else
|
|
{
|
|
int n = Character.digit(c, 16);
|
|
if (n == -1)
|
|
{
|
|
error("illegal character in character reference", c, null);
|
|
break loop1;
|
|
}
|
|
value *= 16;
|
|
value += n;
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
loop2:
|
|
while (true)
|
|
{
|
|
c = readCh();
|
|
if (c == ';')
|
|
{
|
|
break loop2;
|
|
}
|
|
else
|
|
{
|
|
int n = Character.digit(c, 10);
|
|
if (n == -1)
|
|
{
|
|
error("illegal character in character reference", c, null);
|
|
break loop2;
|
|
}
|
|
value *= 10;
|
|
value += c - '0';
|
|
}
|
|
}
|
|
}
|
|
|
|
// check for character refs being legal XML
|
|
if ((value < 0x0020
|
|
&& ! (value == '\n' || value == '\t' || value == '\r'))
|
|
|| (value >= 0xD800 && value <= 0xDFFF)
|
|
|| value == 0xFFFE || value == 0xFFFF
|
|
|| value > 0x0010ffff)
|
|
{
|
|
error("illegal XML character reference U+"
|
|
+ Integer.toHexString(value));
|
|
}
|
|
|
|
// Check for surrogates: 00000000 0000xxxx yyyyyyyy zzzzzzzz
|
|
// (1101|10xx|xxyy|yyyy + 1101|11yy|zzzz|zzzz:
|
|
if (value <= 0x0000ffff)
|
|
{
|
|
// no surrogates needed
|
|
dataBufferAppend((char) value);
|
|
}
|
|
else if (value <= 0x0010ffff)
|
|
{
|
|
value -= 0x10000;
|
|
// > 16 bits, surrogate needed
|
|
dataBufferAppend((char) (0xd800 | (value >> 10)));
|
|
dataBufferAppend((char) (0xdc00 | (value & 0x0003ff)));
|
|
}
|
|
else
|
|
{
|
|
// too big for surrogate
|
|
error("character reference " + value + " is too large for UTF-16",
|
|
Integer.toString(value), null);
|
|
}
|
|
if (doFlush)
|
|
{
|
|
dataBufferFlush();
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Parse and expand an entity reference.
|
|
* <pre>
|
|
* [68] EntityRef ::= '&' Name ';'
|
|
* </pre>
|
|
* <p>NOTE: the '&' has already been read.
|
|
* @param externalAllowed External entities are allowed here.
|
|
*/
|
|
private void parseEntityRef(boolean externalAllowed)
|
|
throws SAXException, IOException
|
|
{
|
|
String name;
|
|
|
|
name = readNmtoken(true);
|
|
require(';');
|
|
switch (getEntityType(name))
|
|
{
|
|
case ENTITY_UNDECLARED:
|
|
// NOTE: XML REC describes amazingly convoluted handling for
|
|
// this case. Nothing as meaningful as being a WFness error
|
|
// unless the processor might _legitimately_ not have seen a
|
|
// declaration ... which is what this implements.
|
|
String message;
|
|
|
|
message = "reference to undeclared general entity " + name;
|
|
if (skippedPE && !docIsStandalone)
|
|
{
|
|
handler.verror(message);
|
|
// we don't know this entity, and it might be external...
|
|
if (externalAllowed)
|
|
{
|
|
handler.skippedEntity(name);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
error(message);
|
|
}
|
|
break;
|
|
case ENTITY_INTERNAL:
|
|
pushString(name, getEntityValue(name));
|
|
|
|
//workaround for possible input pop before marking
|
|
//the buffer reading position
|
|
char t = readCh();
|
|
unread(t);
|
|
int bufferPosMark = readBufferPos;
|
|
|
|
int end = readBufferPos + getEntityValue(name).length();
|
|
for (int k = readBufferPos; k < end; k++)
|
|
{
|
|
t = readCh();
|
|
if (t == '&')
|
|
{
|
|
t = readCh();
|
|
if (t == '#')
|
|
{
|
|
//try to match a character ref
|
|
tryReadCharRef();
|
|
|
|
//everything has been read
|
|
if (readBufferPos >= end)
|
|
{
|
|
break;
|
|
}
|
|
k = readBufferPos;
|
|
continue;
|
|
}
|
|
else if (Character.isLetter(t))
|
|
{
|
|
//looks like an entity ref
|
|
unread(t);
|
|
readNmtoken(true);
|
|
require(';');
|
|
|
|
//everything has been read
|
|
if (readBufferPos >= end)
|
|
{
|
|
break;
|
|
}
|
|
k = readBufferPos;
|
|
continue;
|
|
}
|
|
error(" malformed entity reference");
|
|
}
|
|
|
|
}
|
|
readBufferPos = bufferPosMark;
|
|
break;
|
|
case ENTITY_TEXT:
|
|
if (externalAllowed)
|
|
{
|
|
pushURL(false, name, getEntityIds(name),
|
|
null, null, null, true);
|
|
}
|
|
else
|
|
{
|
|
error("reference to external entity in attribute value.",
|
|
name, null);
|
|
}
|
|
break;
|
|
case ENTITY_NDATA:
|
|
if (externalAllowed)
|
|
{
|
|
error("unparsed entity reference in content", name, null);
|
|
}
|
|
else
|
|
{
|
|
error("reference to external entity in attribute value.",
|
|
name, null);
|
|
}
|
|
break;
|
|
default:
|
|
throw new RuntimeException();
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Parse and expand a parameter entity reference.
|
|
* <pre>
|
|
* [69] PEReference ::= '%' Name ';'
|
|
* </pre>
|
|
* <p>NOTE: the '%' has already been read.
|
|
*/
|
|
private void parsePEReference()
|
|
throws SAXException, IOException
|
|
{
|
|
String name;
|
|
|
|
name = "%" + readNmtoken(true);
|
|
require(';');
|
|
switch (getEntityType(name))
|
|
{
|
|
case ENTITY_UNDECLARED:
|
|
// VC: Entity Declared
|
|
handler.verror("reference to undeclared parameter entity " + name);
|
|
|
|
// we should disable handling of all subsequent declarations
|
|
// unless this is a standalone document (info discarded)
|
|
break;
|
|
case ENTITY_INTERNAL:
|
|
if (inLiteral)
|
|
{
|
|
pushString(name, getEntityValue(name));
|
|
}
|
|
else
|
|
{
|
|
pushString(name, ' ' + getEntityValue(name) + ' ');
|
|
}
|
|
break;
|
|
case ENTITY_TEXT:
|
|
if (!inLiteral)
|
|
{
|
|
pushString(null, " ");
|
|
}
|
|
pushURL(true, name, getEntityIds(name), null, null, null, true);
|
|
if (!inLiteral)
|
|
{
|
|
pushString(null, " ");
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Parse an entity declaration.
|
|
* <pre>
|
|
* [70] EntityDecl ::= GEDecl | PEDecl
|
|
* [71] GEDecl ::= '<!ENTITY' S Name S EntityDef S? '>'
|
|
* [72] PEDecl ::= '<!ENTITY' S '%' S Name S PEDef S? '>'
|
|
* [73] EntityDef ::= EntityValue | (ExternalID NDataDecl?)
|
|
* [74] PEDef ::= EntityValue | ExternalID
|
|
* [75] ExternalID ::= 'SYSTEM' S SystemLiteral
|
|
* | 'PUBLIC' S PubidLiteral S SystemLiteral
|
|
* [76] NDataDecl ::= S 'NDATA' S Name
|
|
* </pre>
|
|
* <p>NOTE: the '<!ENTITY' has already been read.
|
|
*/
|
|
private void parseEntityDecl()
|
|
throws Exception
|
|
{
|
|
boolean peFlag = false;
|
|
int flags = 0;
|
|
|
|
// Check for a parameter entity.
|
|
expandPE = false;
|
|
requireWhitespace();
|
|
if (tryRead('%'))
|
|
{
|
|
peFlag = true;
|
|
requireWhitespace();
|
|
}
|
|
expandPE = true;
|
|
|
|
// Read the entity name, and prepend
|
|
// '%' if necessary.
|
|
String name = readNmtoken(true);
|
|
//NE08
|
|
if (name.indexOf(':') >= 0)
|
|
{
|
|
error("Illegal character(':') in entity name ", name, null);
|
|
}
|
|
if (peFlag)
|
|
{
|
|
name = "%" + name;
|
|
}
|
|
|
|
// Read the entity value.
|
|
requireWhitespace();
|
|
char c = readCh();
|
|
unread (c);
|
|
if (c == '"' || c == '\'')
|
|
{
|
|
// Internal entity ... replacement text has expanded refs
|
|
// to characters and PEs, but not to general entities
|
|
String value = readLiteral(flags);
|
|
setInternalEntity(name, value);
|
|
}
|
|
else
|
|
{
|
|
// Read the external IDs
|
|
ExternalIdentifiers ids = readExternalIds(false, false);
|
|
|
|
// Check for NDATA declaration.
|
|
boolean white = tryWhitespace();
|
|
if (!peFlag && tryRead("NDATA"))
|
|
{
|
|
if (!white)
|
|
{
|
|
error("whitespace required before NDATA");
|
|
}
|
|
requireWhitespace();
|
|
String notationName = readNmtoken(true);
|
|
if (!skippedPE)
|
|
{
|
|
setExternalEntity(name, ENTITY_NDATA, ids, notationName);
|
|
handler.unparsedEntityDecl(name, ids.publicId, ids.systemId,
|
|
ids.baseUri, notationName);
|
|
}
|
|
}
|
|
else if (!skippedPE)
|
|
{
|
|
setExternalEntity(name, ENTITY_TEXT, ids, null);
|
|
handler.getDeclHandler()
|
|
.externalEntityDecl(name, ids.publicId,
|
|
handler.resolveURIs()
|
|
// FIXME: ASSUMES not skipped
|
|
// "false" forces error on bad URI
|
|
? handler.absolutize(ids.baseUri,
|
|
ids.systemId,
|
|
false)
|
|
: ids.systemId);
|
|
}
|
|
}
|
|
|
|
// Finish the declaration.
|
|
skipWhitespace();
|
|
require('>');
|
|
}
|
|
|
|
/**
|
|
* Parse a notation declaration.
|
|
* <pre>
|
|
* [82] NotationDecl ::= '<!NOTATION' S Name S
|
|
* (ExternalID | PublicID) S? '>'
|
|
* [83] PublicID ::= 'PUBLIC' S PubidLiteral
|
|
* </pre>
|
|
* <P>NOTE: the '<!NOTATION' has already been read.
|
|
*/
|
|
private void parseNotationDecl()
|
|
throws Exception
|
|
{
|
|
String nname;
|
|
ExternalIdentifiers ids;
|
|
|
|
requireWhitespace();
|
|
nname = readNmtoken(true);
|
|
//NE08
|
|
if (nname.indexOf(':') >= 0)
|
|
{
|
|
error("Illegal character(':') in notation name ", nname, null);
|
|
}
|
|
requireWhitespace();
|
|
|
|
// Read the external identifiers.
|
|
ids = readExternalIds(true, false);
|
|
|
|
// Register the notation.
|
|
setNotation(nname, ids);
|
|
|
|
skipWhitespace();
|
|
require('>');
|
|
}
|
|
|
|
/**
|
|
* Parse character data.
|
|
* <pre>
|
|
* [14] CharData ::= [^<&]* - ([^<&]* ']]>' [^<&]*)
|
|
* </pre>
|
|
*/
|
|
private void parseCharData()
|
|
throws Exception
|
|
{
|
|
char c;
|
|
int state = 0;
|
|
boolean pureWhite = false;
|
|
|
|
// assert (dataBufferPos == 0);
|
|
|
|
// are we expecting pure whitespace? it might be dirty...
|
|
if ((currentElementContent == CONTENT_ELEMENTS) && !isDirtyCurrentElement)
|
|
{
|
|
pureWhite = true;
|
|
}
|
|
|
|
// always report right out of readBuffer
|
|
// to minimize (pointless) buffer copies
|
|
while (true)
|
|
{
|
|
int lineAugment = 0;
|
|
int columnAugment = 0;
|
|
int i;
|
|
|
|
loop:
|
|
for (i = readBufferPos; i < readBufferLength; i++)
|
|
{
|
|
switch (c = readBuffer[i])
|
|
{
|
|
case '\n':
|
|
lineAugment++;
|
|
columnAugment = 0;
|
|
// pureWhite unmodified
|
|
break;
|
|
case '\r': // should not happen!!
|
|
case '\t':
|
|
case ' ':
|
|
// pureWhite unmodified
|
|
columnAugment++;
|
|
break;
|
|
case '&':
|
|
case '<':
|
|
columnAugment++;
|
|
// pureWhite unmodified
|
|
// CLEAN end of text sequence
|
|
state = 1;
|
|
break loop;
|
|
case ']':
|
|
// that's not a whitespace char, and
|
|
// can not terminate pure whitespace either
|
|
pureWhite = false;
|
|
if ((i + 2) < readBufferLength)
|
|
{
|
|
if (readBuffer [i + 1] == ']'
|
|
&& readBuffer [i + 2] == '>')
|
|
{
|
|
// ERROR end of text sequence
|
|
state = 2;
|
|
break loop;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
// FIXME missing two end-of-buffer cases
|
|
}
|
|
columnAugment++;
|
|
break;
|
|
default:
|
|
if ((c < 0x0020 || c > 0xFFFD)
|
|
|| ((c >= 0x007f) && (c <= 0x009f) && (c != 0x0085)
|
|
&& xmlVersion == XML_11))
|
|
{
|
|
error("illegal XML character U+"
|
|
+ Integer.toHexString(c));
|
|
}
|
|
// that's not a whitespace char
|
|
pureWhite = false;
|
|
columnAugment++;
|
|
}
|
|
}
|
|
|
|
// report text thus far
|
|
if (lineAugment > 0)
|
|
{
|
|
line += lineAugment;
|
|
column = columnAugment;
|
|
}
|
|
else
|
|
{
|
|
column += columnAugment;
|
|
}
|
|
|
|
// report characters/whitspace
|
|
int length = i - readBufferPos;
|
|
|
|
if (length != 0)
|
|
{
|
|
if (pureWhite)
|
|
{
|
|
handler.ignorableWhitespace(readBuffer,
|
|
readBufferPos, length);
|
|
}
|
|
else
|
|
{
|
|
handler.charData(readBuffer, readBufferPos, length);
|
|
}
|
|
readBufferPos = i;
|
|
}
|
|
|
|
if (state != 0)
|
|
{
|
|
break;
|
|
}
|
|
|
|
// fill next buffer from this entity, or
|
|
// pop stack and continue with previous entity
|
|
unread(readCh());
|
|
}
|
|
if (!pureWhite)
|
|
{
|
|
isDirtyCurrentElement = true;
|
|
}
|
|
// finish, maybe with error
|
|
if (state != 1) // finish, no error
|
|
{
|
|
error("character data may not contain ']]>'");
|
|
}
|
|
}
|
|
|
|
//////////////////////////////////////////////////////////////////////
|
|
// High-level reading and scanning methods.
|
|
//////////////////////////////////////////////////////////////////////
|
|
|
|
/**
|
|
* Require whitespace characters.
|
|
*/
|
|
private void requireWhitespace()
|
|
throws SAXException, IOException
|
|
{
|
|
char c = readCh();
|
|
if (isWhitespace(c))
|
|
{
|
|
skipWhitespace();
|
|
}
|
|
else
|
|
{
|
|
error("whitespace required", c, null);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Skip whitespace characters.
|
|
* <pre>
|
|
* [3] S ::= (#x20 | #x9 | #xd | #xa)+
|
|
* </pre>
|
|
*/
|
|
private void skipWhitespace()
|
|
throws SAXException, IOException
|
|
{
|
|
// Start with a little cheat. Most of
|
|
// the time, the white space will fall
|
|
// within the current read buffer; if
|
|
// not, then fall through.
|
|
if (USE_CHEATS)
|
|
{
|
|
int lineAugment = 0;
|
|
int columnAugment = 0;
|
|
|
|
loop:
|
|
for (int i = readBufferPos; i < readBufferLength; i++)
|
|
{
|
|
switch (readBuffer[i])
|
|
{
|
|
case ' ':
|
|
case '\t':
|
|
case '\r':
|
|
columnAugment++;
|
|
break;
|
|
case '\n':
|
|
lineAugment++;
|
|
columnAugment = 0;
|
|
break;
|
|
case '%':
|
|
if (expandPE)
|
|
{
|
|
break loop;
|
|
}
|
|
// else fall through...
|
|
default:
|
|
readBufferPos = i;
|
|
if (lineAugment > 0)
|
|
{
|
|
line += lineAugment;
|
|
column = columnAugment;
|
|
}
|
|
else
|
|
{
|
|
column += columnAugment;
|
|
}
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
|
|
// OK, do it the slow way.
|
|
char c = readCh ();
|
|
while (isWhitespace(c))
|
|
{
|
|
c = readCh();
|
|
}
|
|
unread(c);
|
|
}
|
|
|
|
/**
|
|
* Read a name or (when parsing an enumeration) name token.
|
|
* <pre>
|
|
* [5] Name ::= (Letter | '_' | ':') (NameChar)*
|
|
* [7] Nmtoken ::= (NameChar)+
|
|
* </pre>
|
|
*/
|
|
private String readNmtoken(boolean isName)
|
|
throws SAXException, IOException
|
|
{
|
|
char c;
|
|
|
|
if (USE_CHEATS)
|
|
{
|
|
loop:
|
|
for (int i = readBufferPos; i < readBufferLength; i++)
|
|
{
|
|
c = readBuffer[i];
|
|
switch (c)
|
|
{
|
|
case '%':
|
|
if (expandPE)
|
|
{
|
|
break loop;
|
|
}
|
|
// else fall through...
|
|
|
|
// What may legitimately come AFTER a name/nmtoken?
|
|
case '<': case '>': case '&':
|
|
case ',': case '|': case '*': case '+': case '?':
|
|
case ')':
|
|
case '=':
|
|
case '\'': case '"':
|
|
case '[':
|
|
case ' ': case '\t': case '\r': case '\n':
|
|
case ';':
|
|
case '/':
|
|
int start = readBufferPos;
|
|
if (i == start)
|
|
{
|
|
error("name expected", readBuffer[i], null);
|
|
}
|
|
readBufferPos = i;
|
|
return intern(readBuffer, start, i - start);
|
|
|
|
default:
|
|
// FIXME ... per IBM's OASIS test submission, these:
|
|
// ? U+06dd
|
|
// Combining U+309B
|
|
//these switches are kind of ugly but at least we won't
|
|
//have to go over the whole lits for each char
|
|
if (isName && i == readBufferPos)
|
|
{
|
|
char c2 = (char) (c & 0x00f0);
|
|
switch (c & 0xff00)
|
|
{
|
|
//starting with 01
|
|
case 0x0100:
|
|
switch (c2)
|
|
{
|
|
case 0x0030:
|
|
if (c == 0x0132 || c == 0x0133 || c == 0x013f)
|
|
{
|
|
error("Not a name start character, U+"
|
|
+ Integer.toHexString(c));
|
|
}
|
|
break;
|
|
case 0x0040:
|
|
if (c == 0x0140 || c == 0x0149)
|
|
{
|
|
error("Not a name start character, U+"
|
|
+ Integer.toHexString(c));
|
|
}
|
|
break;
|
|
case 0x00c0:
|
|
if (c == 0x01c4 || c == 0x01cc)
|
|
{
|
|
error("Not a name start character, U+"
|
|
+ Integer.toHexString(c));
|
|
}
|
|
break;
|
|
case 0x00f0:
|
|
if (c == 0x01f1 || c == 0x01f3)
|
|
{
|
|
error("Not a name start character, U+"
|
|
+ Integer.toHexString(c));
|
|
}
|
|
break;
|
|
case 0x00b0:
|
|
if (c == 0x01f1 || c == 0x01f3)
|
|
{
|
|
error("Not a name start character, U+"
|
|
+ Integer.toHexString(c));
|
|
}
|
|
break;
|
|
default:
|
|
if (c == 0x017f)
|
|
{
|
|
error("Not a name start character, U+"
|
|
+ Integer.toHexString(c));
|
|
}
|
|
}
|
|
|
|
break;
|
|
//starting with 11
|
|
case 0x1100:
|
|
switch (c2)
|
|
{
|
|
case 0x0000:
|
|
if (c == 0x1104 || c == 0x1108 ||
|
|
c == 0x110a || c == 0x110d)
|
|
{
|
|
error("Not a name start character, U+"
|
|
+ Integer.toHexString(c));
|
|
}
|
|
break;
|
|
case 0x0030:
|
|
if (c == 0x113b || c == 0x113f)
|
|
{
|
|
error("Not a name start character, U+"
|
|
+ Integer.toHexString(c));
|
|
}
|
|
break;
|
|
case 0x0040:
|
|
if (c == 0x1141 || c == 0x114d
|
|
|| c == 0x114f )
|
|
{
|
|
error("Not a name start character, U+"
|
|
+ Integer.toHexString(c));
|
|
}
|
|
break;
|
|
case 0x0050:
|
|
if (c == 0x1151 || c == 0x1156)
|
|
{
|
|
error("Not a name start character, U+"
|
|
+ Integer.toHexString(c));
|
|
}
|
|
break;
|
|
case 0x0060:
|
|
if (c == 0x1162 || c == 0x1164
|
|
|| c == 0x1166 || c == 0x116b
|
|
|| c == 0x116f)
|
|
{
|
|
error("Not a name start character, U+"
|
|
+ Integer.toHexString(c));
|
|
}
|
|
break;
|
|
case 0x00b0:
|
|
if (c == 0x11b6 || c == 0x11b9
|
|
|| c == 0x11bb || c == 0x116f)
|
|
{
|
|
error("Not a name start character, U+"
|
|
+ Integer.toHexString(c));
|
|
}
|
|
break;
|
|
default:
|
|
if (c == 0x1174 || c == 0x119f
|
|
|| c == 0x11ac || c == 0x11c3
|
|
|| c == 0x11f1)
|
|
{
|
|
error("Not a name start character, U+"
|
|
+ Integer.toHexString(c));
|
|
}
|
|
}
|
|
break;
|
|
default:
|
|
if (c == 0x0e46 || c == 0x1011
|
|
|| c == 0x212f || c == 0x0587
|
|
|| c == 0x0230 )
|
|
{
|
|
error("Not a name start character, U+"
|
|
+ Integer.toHexString(c));
|
|
}
|
|
}
|
|
}
|
|
// punt on exact tests from Appendix A; approximate
|
|
// them using the Unicode ID start/part rules
|
|
if (i == readBufferPos && isName)
|
|
{
|
|
if (!Character.isUnicodeIdentifierStart(c)
|
|
&& c != ':' && c != '_')
|
|
{
|
|
error("Not a name start character, U+"
|
|
+ Integer.toHexString(c));
|
|
}
|
|
}
|
|
else if (!Character.isUnicodeIdentifierPart(c)
|
|
&& c != '-' && c != ':' && c != '_' && c != '.'
|
|
&& !isExtender(c))
|
|
{
|
|
error("Not a name character, U+"
|
|
+ Integer.toHexString(c));
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
nameBufferPos = 0;
|
|
|
|
// Read the first character.
|
|
while (true)
|
|
{
|
|
c = readCh();
|
|
switch (c)
|
|
{
|
|
case '%':
|
|
case '<': case '>': case '&':
|
|
case ',': case '|': case '*': case '+': case '?':
|
|
case ')':
|
|
case '=':
|
|
case '\'': case '"':
|
|
case '[':
|
|
case ' ': case '\t': case '\n': case '\r':
|
|
case ';':
|
|
case '/':
|
|
unread(c);
|
|
if (nameBufferPos == 0)
|
|
{
|
|
error ("name expected");
|
|
}
|
|
// punt on exact tests from Appendix A, but approximate them
|
|
if (isName
|
|
&& !Character.isUnicodeIdentifierStart(nameBuffer[0])
|
|
&& ":_".indexOf(nameBuffer[0]) == -1)
|
|
{
|
|
error("Not a name start character, U+"
|
|
+ Integer.toHexString(nameBuffer[0]));
|
|
}
|
|
String s = intern(nameBuffer, 0, nameBufferPos);
|
|
nameBufferPos = 0;
|
|
return s;
|
|
default:
|
|
// punt on exact tests from Appendix A, but approximate them
|
|
|
|
if ((nameBufferPos != 0 || !isName)
|
|
&& !Character.isUnicodeIdentifierPart(c)
|
|
&& ":-_.".indexOf(c) == -1
|
|
&& !isExtender(c))
|
|
{
|
|
error("Not a name character, U+"
|
|
+ Integer.toHexString(c));
|
|
}
|
|
if (nameBufferPos >= nameBuffer.length)
|
|
{
|
|
nameBuffer =
|
|
(char[]) extendArray(nameBuffer,
|
|
nameBuffer.length, nameBufferPos);
|
|
}
|
|
nameBuffer[nameBufferPos++] = c;
|
|
}
|
|
}
|
|
}
|
|
|
|
private static boolean isExtender(char c)
|
|
{
|
|
// [88] Extender ::= ...
|
|
return c == 0x00b7 || c == 0x02d0 || c == 0x02d1 || c == 0x0387
|
|
|| c == 0x0640 || c == 0x0e46 || c == 0x0ec6 || c == 0x3005
|
|
|| (c >= 0x3031 && c <= 0x3035)
|
|
|| (c >= 0x309d && c <= 0x309e)
|
|
|| (c >= 0x30fc && c <= 0x30fe);
|
|
}
|
|
|
|
/**
|
|
* Read a literal. With matching single or double quotes as
|
|
* delimiters (and not embedded!) this is used to parse:
|
|
* <pre>
|
|
* [9] EntityValue ::= ... ([^%&] | PEReference | Reference)* ...
|
|
* [10] AttValue ::= ... ([^<&] | Reference)* ...
|
|
* [11] SystemLiteral ::= ... (URLchar - "'")* ...
|
|
* [12] PubidLiteral ::= ... (PubidChar - "'")* ...
|
|
* </pre>
|
|
* as well as the quoted strings in XML and text declarations
|
|
* (for version, encoding, and standalone) which have their
|
|
* own constraints.
|
|
*/
|
|
private String readLiteral(int flags)
|
|
throws SAXException, IOException
|
|
{
|
|
char delim, c;
|
|
int startLine = line;
|
|
boolean saved = expandPE;
|
|
boolean savedReport = doReport;
|
|
|
|
// Find the first delimiter.
|
|
delim = readCh();
|
|
if (delim != '"' && delim != '\'')
|
|
{
|
|
error("expected '\"' or \"'\"", delim, null);
|
|
return null;
|
|
}
|
|
inLiteral = true;
|
|
if ((flags & LIT_DISABLE_PE) != 0)
|
|
{
|
|
expandPE = false;
|
|
}
|
|
doReport = false;
|
|
|
|
// Each level of input source has its own buffer; remember
|
|
// ours, so we won't read the ending delimiter from any
|
|
// other input source, regardless of entity processing.
|
|
char[] ourBuf = readBuffer;
|
|
|
|
// Read the literal.
|
|
try
|
|
{
|
|
c = readCh();
|
|
boolean ampRead = false;
|
|
loop:
|
|
while (! (c == delim && readBuffer == ourBuf))
|
|
{
|
|
switch (c)
|
|
{
|
|
// attributes and public ids are normalized
|
|
// in almost the same ways
|
|
case '\n':
|
|
case '\r':
|
|
if ((flags & (LIT_ATTRIBUTE | LIT_PUBID)) != 0)
|
|
{
|
|
c = ' ';
|
|
}
|
|
break;
|
|
case '\t':
|
|
if ((flags & LIT_ATTRIBUTE) != 0)
|
|
{
|
|
c = ' ';
|
|
}
|
|
break;
|
|
case '&':
|
|
c = readCh();
|
|
// Char refs are expanded immediately, except for
|
|
// all the cases where it's deferred.
|
|
if (c == '#')
|
|
{
|
|
if ((flags & LIT_DISABLE_CREF) != 0)
|
|
{
|
|
dataBufferAppend('&');
|
|
break;
|
|
}
|
|
parseCharRef(false /* Do not do flushDataBuffer */);
|
|
|
|
// exotic WFness risk: this is an entity literal,
|
|
// dataBuffer [dataBufferPos - 1] == '&', and
|
|
// following chars are a _partial_ entity/char ref
|
|
|
|
// It looks like an entity ref ...
|
|
}
|
|
else
|
|
{
|
|
unread(c);
|
|
// Expand it?
|
|
if ((flags & LIT_ENTITY_REF) > 0)
|
|
{
|
|
parseEntityRef(false);
|
|
if (String.valueOf(readBuffer).equals("&"))
|
|
{
|
|
ampRead = true;
|
|
}
|
|
//Is it just data?
|
|
}
|
|
else if ((flags & LIT_DISABLE_EREF) != 0)
|
|
{
|
|
dataBufferAppend('&');
|
|
|
|
// OK, it will be an entity ref -- expanded later.
|
|
}
|
|
else
|
|
{
|
|
String name = readNmtoken(true);
|
|
require(';');
|
|
dataBufferAppend('&');
|
|
dataBufferAppend(name);
|
|
dataBufferAppend(';');
|
|
}
|
|
}
|
|
c = readCh();
|
|
continue loop;
|
|
|
|
case '<':
|
|
// and why? Perhaps so "&foo;" expands the same
|
|
// inside and outside an attribute?
|
|
if ((flags & LIT_ATTRIBUTE) != 0)
|
|
{
|
|
error("attribute values may not contain '<'");
|
|
}
|
|
break;
|
|
|
|
// We don't worry about case '%' and PE refs, readCh does.
|
|
|
|
default:
|
|
break;
|
|
}
|
|
dataBufferAppend(c);
|
|
c = readCh();
|
|
}
|
|
}
|
|
catch (EOFException e)
|
|
{
|
|
error("end of input while looking for delimiter (started on line "
|
|
+ startLine + ')', null, Character.toString(delim));
|
|
}
|
|
inLiteral = false;
|
|
expandPE = saved;
|
|
doReport = savedReport;
|
|
|
|
// Normalise whitespace if necessary.
|
|
if ((flags & LIT_NORMALIZE) > 0)
|
|
{
|
|
dataBufferNormalize();
|
|
}
|
|
|
|
// Return the value.
|
|
return dataBufferToString();
|
|
}
|
|
|
|
/**
|
|
* Try reading external identifiers.
|
|
* A system identifier is not required for notations.
|
|
* @param inNotation Are we parsing a notation decl?
|
|
* @param isSubset Parsing external subset decl (may be omitted)?
|
|
* @return A three-member String array containing the identifiers,
|
|
* or nulls. Order: public, system, baseURI.
|
|
*/
|
|
private ExternalIdentifiers readExternalIds(boolean inNotation,
|
|
boolean isSubset)
|
|
throws Exception
|
|
{
|
|
char c;
|
|
ExternalIdentifiers ids = new ExternalIdentifiers();
|
|
int flags = LIT_DISABLE_CREF | LIT_DISABLE_PE | LIT_DISABLE_EREF;
|
|
|
|
if (tryRead("PUBLIC"))
|
|
{
|
|
requireWhitespace();
|
|
ids.publicId = readLiteral(LIT_NORMALIZE | LIT_PUBID | flags);
|
|
if (inNotation)
|
|
{
|
|
skipWhitespace();
|
|
c = readCh();
|
|
unread(c);
|
|
if (c == '"' || c == '\'')
|
|
{
|
|
ids.systemId = readLiteral(flags);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
requireWhitespace();
|
|
ids.systemId = readLiteral(flags);
|
|
}
|
|
|
|
for (int i = 0; i < ids.publicId.length(); i++)
|
|
{
|
|
c = ids.publicId.charAt(i);
|
|
if (c >= 'a' && c <= 'z')
|
|
{
|
|
continue;
|
|
}
|
|
if (c >= 'A' && c <= 'Z')
|
|
{
|
|
continue;
|
|
}
|
|
if (" \r\n0123456789-' ()+,./:=?;!*#@$_%".indexOf(c) != -1)
|
|
{
|
|
continue;
|
|
}
|
|
error("illegal PUBLIC id character U+"
|
|
+ Integer.toHexString(c));
|
|
}
|
|
}
|
|
else if (tryRead("SYSTEM"))
|
|
{
|
|
requireWhitespace();
|
|
ids.systemId = readLiteral(flags);
|
|
}
|
|
else if (!isSubset)
|
|
{
|
|
error("missing SYSTEM or PUBLIC keyword");
|
|
}
|
|
|
|
if (ids.systemId != null)
|
|
{
|
|
if (ids.systemId.indexOf('#') != -1)
|
|
{
|
|
handler.verror("SYSTEM id has a URI fragment: " + ids.systemId);
|
|
}
|
|
ids.baseUri = handler.getSystemId();
|
|
if (ids.baseUri == null && uriWarnings)
|
|
{
|
|
handler.warn("No base URI; hope URI is absolute: "
|
|
+ ids.systemId);
|
|
}
|
|
}
|
|
|
|
return ids;
|
|
}
|
|
|
|
/**
|
|
* Test if a character is whitespace.
|
|
* <pre>
|
|
* [3] S ::= (#x20 | #x9 | #xd | #xa)+
|
|
* </pre>
|
|
* @param c The character to test.
|
|
* @return true if the character is whitespace.
|
|
*/
|
|
private final boolean isWhitespace(char c)
|
|
{
|
|
if (c > 0x20)
|
|
{
|
|
return false;
|
|
}
|
|
if (c == 0x20 || c == 0x0a || c == 0x09 || c == 0x0d)
|
|
{
|
|
return true;
|
|
}
|
|
return false; // illegal ...
|
|
}
|
|
|
|
//////////////////////////////////////////////////////////////////////
|
|
// Utility routines.
|
|
//////////////////////////////////////////////////////////////////////
|
|
|
|
/**
|
|
* Add a character to the data buffer.
|
|
*/
|
|
private void dataBufferAppend(char c)
|
|
{
|
|
// Expand buffer if necessary.
|
|
if (dataBufferPos >= dataBuffer.length)
|
|
{
|
|
dataBuffer = (char[]) extendArray(dataBuffer,
|
|
dataBuffer.length, dataBufferPos);
|
|
}
|
|
dataBuffer[dataBufferPos++] = c;
|
|
}
|
|
|
|
/**
|
|
* Add a string to the data buffer.
|
|
*/
|
|
private void dataBufferAppend(String s)
|
|
{
|
|
dataBufferAppend(s.toCharArray(), 0, s.length());
|
|
}
|
|
|
|
/**
|
|
* Append (part of) a character array to the data buffer.
|
|
*/
|
|
private void dataBufferAppend(char[] ch, int start, int length)
|
|
{
|
|
dataBuffer = (char[]) extendArray(dataBuffer, dataBuffer.length,
|
|
dataBufferPos + length);
|
|
|
|
System.arraycopy(ch, start, dataBuffer, dataBufferPos, length);
|
|
dataBufferPos += length;
|
|
}
|
|
|
|
/**
|
|
* Normalise space characters in the data buffer.
|
|
*/
|
|
private void dataBufferNormalize()
|
|
{
|
|
int i = 0;
|
|
int j = 0;
|
|
int end = dataBufferPos;
|
|
|
|
// Skip spaces at the start.
|
|
while (j < end && dataBuffer[j] == ' ')
|
|
{
|
|
j++;
|
|
}
|
|
|
|
// Skip whitespace at the end.
|
|
while (end > j && dataBuffer[end - 1] == ' ')
|
|
{
|
|
end --;
|
|
}
|
|
|
|
// Start copying to the left.
|
|
while (j < end)
|
|
{
|
|
|
|
char c = dataBuffer[j++];
|
|
|
|
// Normalise all other spaces to
|
|
// a single space.
|
|
if (c == ' ')
|
|
{
|
|
while (j < end && dataBuffer[j++] == ' ')
|
|
{
|
|
continue;
|
|
}
|
|
dataBuffer[i++] = ' ';
|
|
dataBuffer[i++] = dataBuffer[j - 1];
|
|
}
|
|
else
|
|
{
|
|
dataBuffer[i++] = c;
|
|
}
|
|
}
|
|
|
|
// The new length is <= the old one.
|
|
dataBufferPos = i;
|
|
}
|
|
|
|
/**
|
|
* Convert the data buffer to a string.
|
|
*/
|
|
private String dataBufferToString()
|
|
{
|
|
String s = new String(dataBuffer, 0, dataBufferPos);
|
|
dataBufferPos = 0;
|
|
return s;
|
|
}
|
|
|
|
/**
|
|
* Flush the contents of the data buffer to the handler, as
|
|
* appropriate, and reset the buffer for new input.
|
|
*/
|
|
private void dataBufferFlush()
|
|
throws SAXException
|
|
{
|
|
if (currentElementContent == CONTENT_ELEMENTS
|
|
&& dataBufferPos > 0
|
|
&& !inCDATA)
|
|
{
|
|
// We can't just trust the buffer to be whitespace, there
|
|
// are (error) cases when it isn't
|
|
for (int i = 0; i < dataBufferPos; i++)
|
|
{
|
|
if (!isWhitespace(dataBuffer[i]))
|
|
{
|
|
handler.charData(dataBuffer, 0, dataBufferPos);
|
|
dataBufferPos = 0;
|
|
}
|
|
}
|
|
if (dataBufferPos > 0)
|
|
{
|
|
handler.ignorableWhitespace(dataBuffer, 0, dataBufferPos);
|
|
dataBufferPos = 0;
|
|
}
|
|
}
|
|
else if (dataBufferPos > 0)
|
|
{
|
|
handler.charData(dataBuffer, 0, dataBufferPos);
|
|
dataBufferPos = 0;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Require a string to appear, or throw an exception.
|
|
* <p><em>Precondition:</em> Entity expansion is not required.
|
|
* <p><em>Precondition:</em> data buffer has no characters that
|
|
* will get sent to the application.
|
|
*/
|
|
private void require(String delim)
|
|
throws SAXException, IOException
|
|
{
|
|
int length = delim.length();
|
|
char[] ch;
|
|
|
|
if (length < dataBuffer.length)
|
|
{
|
|
ch = dataBuffer;
|
|
delim.getChars(0, length, ch, 0);
|
|
}
|
|
else
|
|
{
|
|
ch = delim.toCharArray();
|
|
}
|
|
|
|
if (USE_CHEATS && length <= (readBufferLength - readBufferPos))
|
|
{
|
|
int offset = readBufferPos;
|
|
|
|
for (int i = 0; i < length; i++, offset++)
|
|
{
|
|
if (ch[i] != readBuffer[offset])
|
|
{
|
|
error ("required string", null, delim);
|
|
}
|
|
}
|
|
readBufferPos = offset;
|
|
|
|
}
|
|
else
|
|
{
|
|
for (int i = 0; i < length; i++)
|
|
{
|
|
require(ch[i]);
|
|
}
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Require a character to appear, or throw an exception.
|
|
*/
|
|
private void require(char delim)
|
|
throws SAXException, IOException
|
|
{
|
|
char c = readCh();
|
|
|
|
if (c != delim)
|
|
{
|
|
error("required character", c, Character.toString(delim));
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Create an interned string from a character array.
|
|
* Ælfred uses this method to create an interned version
|
|
* of all names and name tokens, so that it can test equality
|
|
* with <code>==</code> instead of <code>String.equals ()</code>.
|
|
*
|
|
* <p>This is much more efficient than constructing a non-interned
|
|
* string first, and then interning it.
|
|
*
|
|
* @param ch an array of characters for building the string.
|
|
* @param start the starting position in the array.
|
|
* @param length the number of characters to place in the string.
|
|
* @return an interned string.
|
|
* @see #intern (String)
|
|
* @see java.lang.String#intern
|
|
*/
|
|
public String intern(char[] ch, int start, int length)
|
|
{
|
|
int index = 0;
|
|
int hash = 0;
|
|
Object[] bucket;
|
|
|
|
// Generate a hash code. This is a widely used string hash,
|
|
// often attributed to Brian Kernighan.
|
|
for (int i = start; i < start + length; i++)
|
|
{
|
|
hash = 31 * hash + ch[i];
|
|
}
|
|
hash = (hash & 0x7fffffff) % SYMBOL_TABLE_LENGTH;
|
|
|
|
// Get the bucket -- consists of {array,String} pairs
|
|
if ((bucket = symbolTable[hash]) == null)
|
|
{
|
|
// first string in this bucket
|
|
bucket = new Object[8];
|
|
|
|
// Search for a matching tuple, and
|
|
// return the string if we find one.
|
|
}
|
|
else
|
|
{
|
|
while (index < bucket.length)
|
|
{
|
|
char[] chFound = (char[]) bucket[index];
|
|
|
|
// Stop when we hit an empty entry.
|
|
if (chFound == null)
|
|
{
|
|
break;
|
|
}
|
|
|
|
// If they're the same length, check for a match.
|
|
if (chFound.length == length)
|
|
{
|
|
for (int i = 0; i < chFound.length; i++)
|
|
{
|
|
// continue search on failure
|
|
if (ch[start + i] != chFound[i])
|
|
{
|
|
break;
|
|
}
|
|
else if (i == length - 1)
|
|
{
|
|
// That's it, we have a match!
|
|
return (String) bucket[index + 1];
|
|
}
|
|
}
|
|
}
|
|
index += 2;
|
|
}
|
|
// Not found -- we'll have to add it.
|
|
|
|
// Do we have to grow the bucket?
|
|
bucket = (Object[]) extendArray(bucket, bucket.length, index);
|
|
}
|
|
symbolTable[hash] = bucket;
|
|
|
|
// OK, add it to the end of the bucket -- "local" interning.
|
|
// Intern "globally" to let applications share interning benefits.
|
|
// That is, "!=" and "==" work on our strings, not just equals().
|
|
String s = new String(ch, start, length).intern();
|
|
bucket[index] = s.toCharArray();
|
|
bucket[index + 1] = s;
|
|
return s;
|
|
}
|
|
|
|
/**
|
|
* Ensure the capacity of an array, allocating a new one if
|
|
* necessary. Usually extends only for name hash collisions.
|
|
*/
|
|
private Object extendArray(Object array, int currentSize, int requiredSize)
|
|
{
|
|
if (requiredSize < currentSize)
|
|
{
|
|
return array;
|
|
}
|
|
else
|
|
{
|
|
Object newArray = null;
|
|
int newSize = currentSize * 2;
|
|
|
|
if (newSize <= requiredSize)
|
|
{
|
|
newSize = requiredSize + 1;
|
|
}
|
|
|
|
if (array instanceof char[])
|
|
{
|
|
newArray = new char[newSize];
|
|
}
|
|
else if (array instanceof Object[])
|
|
{
|
|
newArray = new Object[newSize];
|
|
}
|
|
else
|
|
{
|
|
throw new RuntimeException();
|
|
}
|
|
|
|
System.arraycopy(array, 0, newArray, 0, currentSize);
|
|
return newArray;
|
|
}
|
|
}
|
|
|
|
//////////////////////////////////////////////////////////////////////
|
|
// XML query routines.
|
|
//////////////////////////////////////////////////////////////////////
|
|
|
|
boolean isStandalone()
|
|
{
|
|
return docIsStandalone;
|
|
}
|
|
|
|
//
|
|
// Elements
|
|
//
|
|
|
|
private int getContentType(ElementDecl element, int defaultType)
|
|
{
|
|
int retval;
|
|
|
|
if (element == null)
|
|
{
|
|
return defaultType;
|
|
}
|
|
retval = element.contentType;
|
|
if (retval == CONTENT_UNDECLARED)
|
|
{
|
|
retval = defaultType;
|
|
}
|
|
return retval;
|
|
}
|
|
|
|
/**
|
|
* Look up the content type of an element.
|
|
* @param name The element type name.
|
|
* @return An integer constant representing the content type.
|
|
* @see #CONTENT_UNDECLARED
|
|
* @see #CONTENT_ANY
|
|
* @see #CONTENT_EMPTY
|
|
* @see #CONTENT_MIXED
|
|
* @see #CONTENT_ELEMENTS
|
|
*/
|
|
public int getElementContentType(String name)
|
|
{
|
|
ElementDecl element = (ElementDecl) elementInfo.get(name);
|
|
return getContentType(element, CONTENT_UNDECLARED);
|
|
}
|
|
|
|
/**
|
|
* Register an element.
|
|
* Array format:
|
|
* [0] element type name
|
|
* [1] content model (mixed, elements only)
|
|
* [2] attribute hash table
|
|
*/
|
|
private void setElement(String name, int contentType,
|
|
String contentModel, HashMap attributes)
|
|
throws SAXException
|
|
{
|
|
if (skippedPE)
|
|
{
|
|
return;
|
|
}
|
|
|
|
ElementDecl element = (ElementDecl) elementInfo.get(name);
|
|
|
|
// first <!ELEMENT ...> or <!ATTLIST ...> for this type?
|
|
if (element == null)
|
|
{
|
|
element = new ElementDecl();
|
|
element.contentType = contentType;
|
|
element.contentModel = contentModel;
|
|
element.attributes = attributes;
|
|
elementInfo.put(name, element);
|
|
return;
|
|
}
|
|
|
|
// <!ELEMENT ...> declaration?
|
|
if (contentType != CONTENT_UNDECLARED)
|
|
{
|
|
// ... following an associated <!ATTLIST ...>
|
|
if (element.contentType == CONTENT_UNDECLARED)
|
|
{
|
|
element.contentType = contentType;
|
|
element.contentModel = contentModel;
|
|
}
|
|
else
|
|
{
|
|
// VC: Unique Element Type Declaration
|
|
handler.verror("multiple declarations for element type: "
|
|
+ name);
|
|
}
|
|
}
|
|
|
|
// first <!ATTLIST ...>, before <!ELEMENT ...> ?
|
|
else if (attributes != null)
|
|
{
|
|
element.attributes = attributes;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Look up the attribute hash table for an element.
|
|
* The hash table is the second item in the element array.
|
|
*/
|
|
private HashMap getElementAttributes(String name)
|
|
{
|
|
ElementDecl element = (ElementDecl) elementInfo.get(name);
|
|
return (element == null) ? null : element.attributes;
|
|
}
|
|
|
|
//
|
|
// Attributes
|
|
//
|
|
|
|
/**
|
|
* Get the declared attributes for an element type.
|
|
* @param elname The name of the element type.
|
|
* @return An iterator over all the attributes declared for
|
|
* a specific element type. The results will be valid only
|
|
* after the DTD (if any) has been parsed.
|
|
* @see #getAttributeType
|
|
* @see #getAttributeEnumeration
|
|
* @see #getAttributeDefaultValueType
|
|
* @see #getAttributeDefaultValue
|
|
* @see #getAttributeExpandedValue
|
|
*/
|
|
private Iterator declaredAttributes(ElementDecl element)
|
|
{
|
|
HashMap attlist;
|
|
|
|
if (element == null)
|
|
{
|
|
return null;
|
|
}
|
|
if ((attlist = element.attributes) == null)
|
|
{
|
|
return null;
|
|
}
|
|
return attlist.keySet().iterator();
|
|
}
|
|
|
|
/**
|
|
* Get the declared attributes for an element type.
|
|
* @param elname The name of the element type.
|
|
* @return An iterator over all the attributes declared for
|
|
* a specific element type. The results will be valid only
|
|
* after the DTD (if any) has been parsed.
|
|
* @see #getAttributeType
|
|
* @see #getAttributeEnumeration
|
|
* @see #getAttributeDefaultValueType
|
|
* @see #getAttributeDefaultValue
|
|
* @see #getAttributeExpandedValue
|
|
*/
|
|
public Iterator declaredAttributes(String elname)
|
|
{
|
|
return declaredAttributes((ElementDecl) elementInfo.get(elname));
|
|
}
|
|
|
|
/**
|
|
* Retrieve the declared type of an attribute.
|
|
* @param name The name of the associated element.
|
|
* @param aname The name of the attribute.
|
|
* @return An interend string denoting the type, or null
|
|
* indicating an undeclared attribute.
|
|
*/
|
|
public String getAttributeType(String name, String aname)
|
|
{
|
|
AttributeDecl attribute = getAttribute(name, aname);
|
|
return (attribute == null) ? null : attribute.type;
|
|
}
|
|
|
|
/**
|
|
* Retrieve the allowed values for an enumerated attribute type.
|
|
* @param name The name of the associated element.
|
|
* @param aname The name of the attribute.
|
|
* @return A string containing the token list.
|
|
*/
|
|
public String getAttributeEnumeration(String name, String aname)
|
|
{
|
|
AttributeDecl attribute = getAttribute(name, aname);
|
|
// assert: attribute.enumeration is "ENUMERATION" or "NOTATION"
|
|
return (attribute == null) ? null : attribute.enumeration;
|
|
}
|
|
|
|
/**
|
|
* Retrieve the default value of a declared attribute.
|
|
* @param name The name of the associated element.
|
|
* @param aname The name of the attribute.
|
|
* @return The default value, or null if the attribute was
|
|
* #IMPLIED or simply undeclared and unspecified.
|
|
* @see #getAttributeExpandedValue
|
|
*/
|
|
public String getAttributeDefaultValue(String name, String aname)
|
|
{
|
|
AttributeDecl attribute = getAttribute(name, aname);
|
|
return (attribute == null) ? null : attribute.value;
|
|
}
|
|
|
|
/*
|
|
|
|
// FIXME: Leaving this in, until W3C finally resolves the confusion
|
|
// between parts of the XML 2nd REC about when entity declararations
|
|
// are guaranteed to be known. Current code matches what section 5.1
|
|
// (conformance) describes, but some readings of the self-contradicting
|
|
// text in 4.1 (the "Entity Declared" WFC and VC) seem to expect that
|
|
// attribute expansion/normalization must be deferred in some cases
|
|
// (just TRY to identify them!).
|
|
|
|
* Retrieve the expanded value of a declared attribute.
|
|
* <p>General entities (and char refs) will be expanded (once).
|
|
* @param name The name of the associated element.
|
|
* @param aname The name of the attribute.
|
|
* @return The expanded default value, or null if the attribute was
|
|
* #IMPLIED or simply undeclared
|
|
* @see #getAttributeDefaultValue
|
|
public String getAttributeExpandedValue (String name, String aname)
|
|
throws Exception
|
|
{
|
|
AttributeDecl attribute = getAttribute (name, aname);
|
|
|
|
if (attribute == null) {
|
|
return null;
|
|
} else if (attribute.defaultValue == null && attribute.value != null) {
|
|
// we MUST use the same buf for both quotes else the literal
|
|
// can't be properly terminated
|
|
char buf [] = new char [1];
|
|
int flags = LIT_ENTITY_REF | LIT_ATTRIBUTE;
|
|
String type = getAttributeType (name, aname);
|
|
|
|
if (type != "CDATA" && type != null)
|
|
flags |= LIT_NORMALIZE;
|
|
buf [0] = '"';
|
|
pushCharArray (null, buf, 0, 1);
|
|
pushString (null, attribute.value);
|
|
pushCharArray (null, buf, 0, 1);
|
|
attribute.defaultValue = readLiteral (flags);
|
|
}
|
|
return attribute.defaultValue;
|
|
}
|
|
*/
|
|
|
|
/**
|
|
* Retrieve the default value mode of a declared attribute.
|
|
* @see #ATTRIBUTE_DEFAULT_SPECIFIED
|
|
* @see #ATTRIBUTE_DEFAULT_IMPLIED
|
|
* @see #ATTRIBUTE_DEFAULT_REQUIRED
|
|
* @see #ATTRIBUTE_DEFAULT_FIXED
|
|
*/
|
|
public int getAttributeDefaultValueType(String name, String aname)
|
|
{
|
|
AttributeDecl attribute = getAttribute(name, aname);
|
|
return (attribute == null) ? ATTRIBUTE_DEFAULT_UNDECLARED :
|
|
attribute.valueType;
|
|
}
|
|
|
|
/**
|
|
* Register an attribute declaration for later retrieval.
|
|
* Format:
|
|
* - String type
|
|
* - String default value
|
|
* - int value type
|
|
* - enumeration
|
|
* - processed default value
|
|
*/
|
|
private void setAttribute(String elName, String name, String type,
|
|
String enumeration, String value, int valueType)
|
|
throws Exception
|
|
{
|
|
HashMap attlist;
|
|
|
|
if (skippedPE)
|
|
{
|
|
return;
|
|
}
|
|
|
|
// Create a new hashtable if necessary.
|
|
attlist = getElementAttributes(elName);
|
|
if (attlist == null)
|
|
{
|
|
attlist = new HashMap();
|
|
}
|
|
|
|
// ignore multiple attribute declarations!
|
|
if (attlist.get(name) != null)
|
|
{
|
|
// warn ...
|
|
return;
|
|
}
|
|
else
|
|
{
|
|
AttributeDecl attribute = new AttributeDecl();
|
|
attribute.type = type;
|
|
attribute.value = value;
|
|
attribute.valueType = valueType;
|
|
attribute.enumeration = enumeration;
|
|
attlist.put(name, attribute);
|
|
|
|
// save; but don't overwrite any existing <!ELEMENT ...>
|
|
setElement(elName, CONTENT_UNDECLARED, null, attlist);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Retrieve the attribute declaration for the given element name and name.
|
|
*/
|
|
private AttributeDecl getAttribute(String elName, String name)
|
|
{
|
|
HashMap attlist = getElementAttributes(elName);
|
|
return (attlist == null) ? null : (AttributeDecl) attlist.get(name);
|
|
}
|
|
|
|
//
|
|
// Entities
|
|
//
|
|
|
|
/**
|
|
* Find the type of an entity.
|
|
* @returns An integer constant representing the entity type.
|
|
* @see #ENTITY_UNDECLARED
|
|
* @see #ENTITY_INTERNAL
|
|
* @see #ENTITY_NDATA
|
|
* @see #ENTITY_TEXT
|
|
*/
|
|
public int getEntityType(String ename)
|
|
{
|
|
EntityInfo entity = (EntityInfo) entityInfo.get(ename);
|
|
return (entity == null) ? ENTITY_UNDECLARED : entity.type;
|
|
}
|
|
|
|
/**
|
|
* Return an external entity's identifiers.
|
|
* @param ename The name of the external entity.
|
|
* @return The entity's public identifier, system identifier, and base URI.
|
|
* Null if the entity was not declared as an external entity.
|
|
* @see #getEntityType
|
|
*/
|
|
public ExternalIdentifiers getEntityIds(String ename)
|
|
{
|
|
EntityInfo entity = (EntityInfo) entityInfo.get(ename);
|
|
return (entity == null) ? null : entity.ids;
|
|
}
|
|
|
|
/**
|
|
* Return an internal entity's replacement text.
|
|
* @param ename The name of the internal entity.
|
|
* @return The entity's replacement text, or null if
|
|
* the entity was not declared as an internal entity.
|
|
* @see #getEntityType
|
|
*/
|
|
public String getEntityValue(String ename)
|
|
{
|
|
EntityInfo entity = (EntityInfo) entityInfo.get(ename);
|
|
return (entity == null) ? null : entity.value;
|
|
}
|
|
|
|
/**
|
|
* Register an entity declaration for later retrieval.
|
|
*/
|
|
private void setInternalEntity(String eName, String value)
|
|
throws SAXException
|
|
{
|
|
if (skippedPE)
|
|
{
|
|
return;
|
|
}
|
|
|
|
if (entityInfo.get(eName) == null)
|
|
{
|
|
EntityInfo entity = new EntityInfo();
|
|
entity.type = ENTITY_INTERNAL;
|
|
entity.value = value;
|
|
entityInfo.put(eName, entity);
|
|
}
|
|
if (handler.stringInterning)
|
|
{
|
|
if ("lt" == eName || "gt" == eName || "quot" == eName
|
|
|| "apos" == eName || "amp" == eName)
|
|
{
|
|
return;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if ("lt".equals(eName) || "gt".equals(eName) || "quot".equals(eName)
|
|
|| "apos".equals(eName) || "amp".equals(eName))
|
|
{
|
|
return;
|
|
}
|
|
}
|
|
handler.getDeclHandler().internalEntityDecl(eName, value);
|
|
}
|
|
|
|
/**
|
|
* Register an external entity declaration for later retrieval.
|
|
*/
|
|
private void setExternalEntity(String eName, int eClass,
|
|
ExternalIdentifiers ids, String nName)
|
|
{
|
|
if (entityInfo.get(eName) == null)
|
|
{
|
|
EntityInfo entity = new EntityInfo();
|
|
entity.type = eClass;
|
|
entity.ids = ids;
|
|
entity.notationName = nName;
|
|
entityInfo.put(eName, entity);
|
|
}
|
|
}
|
|
|
|
//
|
|
// Notations.
|
|
//
|
|
|
|
/**
|
|
* Report a notation declaration, checking for duplicates.
|
|
*/
|
|
private void setNotation(String nname, ExternalIdentifiers ids)
|
|
throws SAXException
|
|
{
|
|
if (skippedPE)
|
|
{
|
|
return;
|
|
}
|
|
|
|
handler.notationDecl(nname, ids.publicId, ids.systemId, ids.baseUri);
|
|
if (notationInfo.get(nname) == null)
|
|
{
|
|
notationInfo.put(nname, nname);
|
|
}
|
|
else
|
|
{
|
|
// VC: Unique Notation Name
|
|
handler.verror("Duplicate notation name decl: " + nname);
|
|
}
|
|
}
|
|
|
|
//
|
|
// Location.
|
|
//
|
|
|
|
/**
|
|
* Return the current line number.
|
|
*/
|
|
public int getLineNumber()
|
|
{
|
|
return line;
|
|
}
|
|
|
|
/**
|
|
* Return the current column number.
|
|
*/
|
|
public int getColumnNumber()
|
|
{
|
|
return column;
|
|
}
|
|
|
|
//////////////////////////////////////////////////////////////////////
|
|
// High-level I/O.
|
|
//////////////////////////////////////////////////////////////////////
|
|
|
|
/**
|
|
* Read a single character from the readBuffer.
|
|
* <p>The readDataChunk () method maintains the buffer.
|
|
* <p>If we hit the end of an entity, try to pop the stack and
|
|
* keep going.
|
|
* <p> (This approach doesn't really enforce XML's rules about
|
|
* entity boundaries, but this is not currently a validating
|
|
* parser).
|
|
* <p>This routine also attempts to keep track of the current
|
|
* position in external entities, but it's not entirely accurate.
|
|
* @return The next available input character.
|
|
* @see #unread (char)
|
|
* @see #readDataChunk
|
|
* @see #readBuffer
|
|
* @see #line
|
|
* @return The next character from the current input source.
|
|
*/
|
|
private char readCh()
|
|
throws SAXException, IOException
|
|
{
|
|
// As long as there's nothing in the
|
|
// read buffer, try reading more data
|
|
// (for an external entity) or popping
|
|
// the entity stack (for either).
|
|
while (readBufferPos >= readBufferLength)
|
|
{
|
|
switch (sourceType)
|
|
{
|
|
case INPUT_READER:
|
|
case INPUT_STREAM:
|
|
readDataChunk();
|
|
while (readBufferLength < 1)
|
|
{
|
|
popInput();
|
|
if (readBufferLength < 1)
|
|
{
|
|
readDataChunk();
|
|
}
|
|
}
|
|
break;
|
|
|
|
default:
|
|
|
|
popInput();
|
|
break;
|
|
}
|
|
}
|
|
|
|
char c = readBuffer[readBufferPos++];
|
|
|
|
if (c == '\n')
|
|
{
|
|
line++;
|
|
column = 0;
|
|
}
|
|
else
|
|
{
|
|
if (c == '<')
|
|
{
|
|
/* the most common return to parseContent () ... NOP */
|
|
}
|
|
else if (((c < 0x0020 && (c != '\t') && (c != '\r')) || c > 0xFFFD)
|
|
|| ((c >= 0x007f) && (c <= 0x009f) && (c != 0x0085)
|
|
&& xmlVersion == XML_11))
|
|
{
|
|
error("illegal XML character U+" + Integer.toHexString(c));
|
|
}
|
|
|
|
// If we're in the DTD and in a context where PEs get expanded,
|
|
// do so ... 1/14/2000 errata identify those contexts. There
|
|
// are also spots in the internal subset where PE refs are fatal
|
|
// errors, hence yet another flag.
|
|
else if (c == '%' && expandPE)
|
|
{
|
|
if (peIsError)
|
|
{
|
|
error("PE reference within decl in internal subset.");
|
|
}
|
|
parsePEReference();
|
|
return readCh();
|
|
}
|
|
column++;
|
|
}
|
|
|
|
return c;
|
|
}
|
|
|
|
/**
|
|
* Push a single character back onto the current input stream.
|
|
* <p>This method usually pushes the character back onto
|
|
* the readBuffer.
|
|
* <p>I don't think that this would ever be called with
|
|
* readBufferPos = 0, because the methods always reads a character
|
|
* before unreading it, but just in case, I've added a boundary
|
|
* condition.
|
|
* @param c The character to push back.
|
|
* @see #readCh
|
|
* @see #unread (char[])
|
|
* @see #readBuffer
|
|
*/
|
|
private void unread(char c)
|
|
throws SAXException
|
|
{
|
|
// Normal condition.
|
|
if (c == '\n')
|
|
{
|
|
line--;
|
|
column = -1;
|
|
}
|
|
if (readBufferPos > 0)
|
|
{
|
|
readBuffer[--readBufferPos] = c;
|
|
}
|
|
else
|
|
{
|
|
pushString(null, Character.toString(c));
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Push a char array back onto the current input stream.
|
|
* <p>NOTE: you must <em>never</em> push back characters that you
|
|
* haven't actually read: use pushString () instead.
|
|
* @see #readCh
|
|
* @see #unread (char)
|
|
* @see #readBuffer
|
|
* @see #pushString
|
|
*/
|
|
private void unread(char[] ch, int length)
|
|
throws SAXException
|
|
{
|
|
for (int i = 0; i < length; i++)
|
|
{
|
|
if (ch[i] == '\n')
|
|
{
|
|
line--;
|
|
column = -1;
|
|
}
|
|
}
|
|
if (length < readBufferPos)
|
|
{
|
|
readBufferPos -= length;
|
|
}
|
|
else
|
|
{
|
|
pushCharArray(null, ch, 0, length);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Push, or skip, a new external input source.
|
|
* The source will be some kind of parsed entity, such as a PE
|
|
* (including the external DTD subset) or content for the body.
|
|
*
|
|
* @param url The java.net.URL object for the entity.
|
|
* @see SAXDriver#resolveEntity
|
|
* @see #pushString
|
|
* @see #sourceType
|
|
* @see #pushInput
|
|
* @see #detectEncoding
|
|
* @see #sourceType
|
|
* @see #readBuffer
|
|
*/
|
|
private void pushURL(boolean isPE,
|
|
String ename,
|
|
ExternalIdentifiers ids,
|
|
Reader reader,
|
|
InputStream stream,
|
|
String encoding,
|
|
boolean doResolve)
|
|
throws SAXException, IOException
|
|
{
|
|
boolean ignoreEncoding;
|
|
String systemId;
|
|
InputSource source;
|
|
|
|
if (!isPE)
|
|
{
|
|
dataBufferFlush();
|
|
}
|
|
|
|
scratch.setPublicId(ids.publicId);
|
|
scratch.setSystemId(ids.systemId);
|
|
|
|
// See if we should skip or substitute the entity.
|
|
// If we're not skipping, resolving reports startEntity()
|
|
// and updates the (handler's) stack of URIs.
|
|
if (doResolve)
|
|
{
|
|
// assert (stream == null && reader == null && encoding == null)
|
|
source = handler.resolveEntity(isPE, ename, scratch, ids.baseUri);
|
|
if (source == null)
|
|
{
|
|
handler.warn("skipping entity: " + ename);
|
|
handler.skippedEntity(ename);
|
|
if (isPE)
|
|
{
|
|
skippedPE = true;
|
|
}
|
|
return;
|
|
}
|
|
|
|
// we might be using alternate IDs/encoding
|
|
systemId = source.getSystemId();
|
|
// The following warning and setting systemId was deleted bcause
|
|
// the application has the option of not setting systemId
|
|
// provided that it has set the characte/byte stream.
|
|
/*
|
|
if (systemId == null) {
|
|
handler.warn ("missing system ID, using " + ids.systemId);
|
|
systemId = ids.systemId;
|
|
}
|
|
*/
|
|
}
|
|
else
|
|
{
|
|
// "[document]", or "[dtd]" via getExternalSubset()
|
|
scratch.setCharacterStream(reader);
|
|
scratch.setByteStream(stream);
|
|
scratch.setEncoding(encoding);
|
|
source = scratch;
|
|
systemId = ids.systemId;
|
|
if (handler.stringInterning)
|
|
{
|
|
handler.startExternalEntity(ename, systemId,
|
|
"[document]" == ename);
|
|
}
|
|
else
|
|
{
|
|
handler.startExternalEntity(ename, systemId,
|
|
"[document]".equals(ename));
|
|
}
|
|
}
|
|
|
|
// we may have been given I/O streams directly
|
|
if (source.getCharacterStream() != null)
|
|
{
|
|
if (source.getByteStream() != null)
|
|
error("InputSource has two streams!");
|
|
reader = source.getCharacterStream();
|
|
}
|
|
else if (source.getByteStream() != null)
|
|
{
|
|
encoding = source.getEncoding();
|
|
if (encoding == null)
|
|
{
|
|
stream = source.getByteStream();
|
|
}
|
|
else
|
|
{
|
|
try
|
|
{
|
|
reader = new InputStreamReader(source.getByteStream(),
|
|
encoding);
|
|
}
|
|
catch (IOException e)
|
|
{
|
|
stream = source.getByteStream();
|
|
}
|
|
}
|
|
}
|
|
else if (systemId == null)
|
|
{
|
|
error("InputSource has no URI!");
|
|
}
|
|
scratch.setCharacterStream(null);
|
|
scratch.setByteStream(null);
|
|
scratch.setEncoding(null);
|
|
|
|
// Push the existing status.
|
|
pushInput(ename);
|
|
|
|
// Create a new read buffer.
|
|
// (Note the four-character margin)
|
|
readBuffer = new char[READ_BUFFER_MAX + 4];
|
|
readBufferPos = 0;
|
|
readBufferLength = 0;
|
|
readBufferOverflow = -1;
|
|
is = null;
|
|
line = 1;
|
|
column = 0;
|
|
currentByteCount = 0;
|
|
|
|
// If there's an explicit character stream, just
|
|
// ignore encoding declarations.
|
|
if (reader != null)
|
|
{
|
|
sourceType = INPUT_READER;
|
|
this.reader = reader;
|
|
tryEncodingDecl(true);
|
|
return;
|
|
}
|
|
|
|
// Else we handle the conversion, and need to ensure
|
|
// it's done right.
|
|
sourceType = INPUT_STREAM;
|
|
if (stream != null)
|
|
{
|
|
is = stream;
|
|
}
|
|
else
|
|
{
|
|
// We have to open our own stream to the URL.
|
|
URL url = new URL(systemId);
|
|
|
|
externalEntity = url.openConnection();
|
|
externalEntity.connect();
|
|
is = externalEntity.getInputStream();
|
|
}
|
|
|
|
// If we get to here, there must be
|
|
// an InputStream available.
|
|
if (!is.markSupported())
|
|
{
|
|
is = new BufferedInputStream(is);
|
|
}
|
|
|
|
// Get any external encoding label.
|
|
if (encoding == null && externalEntity != null)
|
|
{
|
|
// External labels can be untrustworthy; filesystems in
|
|
// particular often have the wrong default for content
|
|
// that wasn't locally originated. Those we autodetect.
|
|
if (!"file".equals(externalEntity.getURL().getProtocol()))
|
|
{
|
|
int temp;
|
|
|
|
// application/xml;charset=something;otherAttr=...
|
|
// ... with many variants on 'something'
|
|
encoding = externalEntity.getContentType();
|
|
|
|
// MHK code (fix for Saxon 5.5.1/007):
|
|
// protect against encoding==null
|
|
if (encoding == null)
|
|
{
|
|
temp = -1;
|
|
}
|
|
else
|
|
{
|
|
temp = encoding.indexOf("charset");
|
|
}
|
|
|
|
// RFC 2376 sez MIME text defaults to ASCII, but since the
|
|
// JDK will create a MIME type out of thin air, we always
|
|
// autodetect when there's no explicit charset attribute.
|
|
if (temp < 0)
|
|
{
|
|
encoding = null; // autodetect
|
|
}
|
|
else
|
|
{
|
|
// only this one attribute
|
|
if ((temp = encoding.indexOf(';')) > 0)
|
|
{
|
|
encoding = encoding.substring(0, temp);
|
|
}
|
|
|
|
if ((temp = encoding.indexOf('=', temp + 7)) > 0)
|
|
{
|
|
encoding = encoding.substring(temp + 1);
|
|
|
|
// attributes can have comment fields (RFC 822)
|
|
if ((temp = encoding.indexOf('(')) > 0)
|
|
{
|
|
encoding = encoding.substring(0, temp);
|
|
}
|
|
// ... and values may be quoted
|
|
if ((temp = encoding.indexOf('"')) > 0)
|
|
{
|
|
encoding =
|
|
encoding.substring(temp + 1,
|
|
encoding.indexOf('"', temp + 2));
|
|
}
|
|
encoding = encoding.trim();
|
|
}
|
|
else
|
|
{
|
|
handler.warn("ignoring illegal MIME attribute: "
|
|
+ encoding);
|
|
encoding = null;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
// if we got an external encoding label, use it ...
|
|
if (encoding != null)
|
|
{
|
|
this.encoding = ENCODING_EXTERNAL;
|
|
setupDecoding(encoding);
|
|
ignoreEncoding = true;
|
|
|
|
// ... else autodetect from first bytes.
|
|
}
|
|
else
|
|
{
|
|
detectEncoding();
|
|
ignoreEncoding = false;
|
|
}
|
|
|
|
// Read any XML or text declaration.
|
|
// If we autodetected, it may tell us the "real" encoding.
|
|
try
|
|
{
|
|
tryEncodingDecl(ignoreEncoding);
|
|
}
|
|
catch (UnsupportedEncodingException x)
|
|
{
|
|
encoding = x.getMessage();
|
|
|
|
// if we don't handle the declared encoding,
|
|
// try letting a JVM InputStreamReader do it
|
|
try
|
|
{
|
|
if (sourceType != INPUT_STREAM)
|
|
{
|
|
throw x;
|
|
}
|
|
|
|
is.reset();
|
|
readBufferPos = 0;
|
|
readBufferLength = 0;
|
|
readBufferOverflow = -1;
|
|
line = 1;
|
|
currentByteCount = column = 0;
|
|
|
|
sourceType = INPUT_READER;
|
|
this.reader = new InputStreamReader(is, encoding);
|
|
is = null;
|
|
|
|
tryEncodingDecl(true);
|
|
|
|
}
|
|
catch (IOException e)
|
|
{
|
|
error("unsupported text encoding",
|
|
encoding,
|
|
null);
|
|
}
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Check for an encoding declaration. This is the second part of the
|
|
* XML encoding autodetection algorithm, relying on detectEncoding to
|
|
* get to the point that this part can read any encoding declaration
|
|
* in the document (using only US-ASCII characters).
|
|
*
|
|
* <p> Because this part starts to fill parser buffers with this data,
|
|
* it's tricky to setup a reader so that Java's built-in decoders can be
|
|
* used for the character encodings that aren't built in to this parser
|
|
* (such as EUC-JP, KOI8-R, Big5, etc).
|
|
*
|
|
* @return any encoding in the declaration, uppercased; or null
|
|
* @see detectEncoding
|
|
*/
|
|
private String tryEncodingDecl(boolean ignoreEncoding)
|
|
throws SAXException, IOException
|
|
{
|
|
// Read the XML/text declaration.
|
|
if (tryRead("<?xml"))
|
|
{
|
|
if (tryWhitespace())
|
|
{
|
|
if (inputStack.size() > 0)
|
|
{
|
|
return parseTextDecl(ignoreEncoding);
|
|
}
|
|
else
|
|
{
|
|
return parseXMLDecl(ignoreEncoding);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
// <?xml-stylesheet ...?> or similar
|
|
unread('l');
|
|
unread('m');
|
|
unread('x');
|
|
unread('?');
|
|
unread('<');
|
|
}
|
|
}
|
|
return null;
|
|
}
|
|
|
|
/**
|
|
* Attempt to detect the encoding of an entity.
|
|
* <p>The trick here (as suggested in the XML standard) is that
|
|
* any entity not in UTF-8, or in UCS-2 with a byte-order mark,
|
|
* <b>must</b> begin with an XML declaration or an encoding
|
|
* declaration; we simply have to look for "<?xml" in various
|
|
* encodings.
|
|
* <p>This method has no way to distinguish among 8-bit encodings.
|
|
* Instead, it sets up for UTF-8, then (possibly) revises its assumption
|
|
* later in setupDecoding (). Any ASCII-derived 8-bit encoding
|
|
* should work, but most will be rejected later by setupDecoding ().
|
|
* @see #tryEncoding (byte[], byte, byte, byte, byte)
|
|
* @see #tryEncoding (byte[], byte, byte)
|
|
* @see #setupDecoding
|
|
*/
|
|
private void detectEncoding()
|
|
throws SAXException, IOException
|
|
{
|
|
byte[] signature = new byte[4];
|
|
|
|
// Read the first four bytes for
|
|
// autodetection.
|
|
is.mark(4);
|
|
is.read(signature);
|
|
is.reset();
|
|
|
|
//
|
|
// FIRST: four byte encodings (who uses these?)
|
|
//
|
|
if (tryEncoding(signature, (byte) 0x00, (byte) 0x00,
|
|
(byte) 0x00, (byte) 0x3c))
|
|
{
|
|
// UCS-4 must begin with "<?xml"
|
|
// 0x00 0x00 0x00 0x3c: UCS-4, big-endian (1234)
|
|
// "UTF-32BE"
|
|
encoding = ENCODING_UCS_4_1234;
|
|
}
|
|
else if (tryEncoding(signature, (byte) 0x3c, (byte) 0x00,
|
|
(byte) 0x00, (byte) 0x00))
|
|
{
|
|
// 0x3c 0x00 0x00 0x00: UCS-4, little-endian (4321)
|
|
// "UTF-32LE"
|
|
encoding = ENCODING_UCS_4_4321;
|
|
}
|
|
else if (tryEncoding(signature, (byte) 0x00, (byte) 0x00,
|
|
(byte) 0x3c, (byte) 0x00))
|
|
{
|
|
// 0x00 0x00 0x3c 0x00: UCS-4, unusual (2143)
|
|
encoding = ENCODING_UCS_4_2143;
|
|
}
|
|
else if (tryEncoding(signature, (byte) 0x00, (byte) 0x3c,
|
|
(byte) 0x00, (byte) 0x00))
|
|
{
|
|
// 0x00 0x3c 0x00 0x00: UCS-4, unusual (3421)
|
|
encoding = ENCODING_UCS_4_3412;
|
|
|
|
// 00 00 fe ff UCS_4_1234 (with BOM)
|
|
// ff fe 00 00 UCS_4_4321 (with BOM)
|
|
}
|
|
|
|
//
|
|
// SECOND: two byte encodings
|
|
// note ... with 1/14/2000 errata the XML spec identifies some
|
|
// more "broken UTF-16" autodetection cases, with no XML decl,
|
|
// which we don't handle here (that's legal too).
|
|
//
|
|
else if (tryEncoding(signature, (byte) 0xfe, (byte) 0xff))
|
|
{
|
|
// UCS-2 with a byte-order marker. (UTF-16)
|
|
// 0xfe 0xff: UCS-2, big-endian (12)
|
|
encoding = ENCODING_UCS_2_12;
|
|
is.read(); is.read();
|
|
}
|
|
else if (tryEncoding(signature, (byte) 0xff, (byte) 0xfe))
|
|
{
|
|
// UCS-2 with a byte-order marker. (UTF-16)
|
|
// 0xff 0xfe: UCS-2, little-endian (21)
|
|
encoding = ENCODING_UCS_2_21;
|
|
is.read(); is.read();
|
|
}
|
|
else if (tryEncoding(signature, (byte) 0x00, (byte) 0x3c,
|
|
(byte) 0x00, (byte) 0x3f))
|
|
{
|
|
// UTF-16BE (otherwise, malformed UTF-16)
|
|
// 0x00 0x3c 0x00 0x3f: UCS-2, big-endian, no byte-order mark
|
|
encoding = ENCODING_UCS_2_12;
|
|
error("no byte-order mark for UCS-2 entity");
|
|
}
|
|
else if (tryEncoding(signature, (byte) 0x3c, (byte) 0x00,
|
|
(byte) 0x3f, (byte) 0x00))
|
|
{
|
|
// UTF-16LE (otherwise, malformed UTF-16)
|
|
// 0x3c 0x00 0x3f 0x00: UCS-2, little-endian, no byte-order mark
|
|
encoding = ENCODING_UCS_2_21;
|
|
error("no byte-order mark for UCS-2 entity");
|
|
}
|
|
|
|
//
|
|
// THIRD: ASCII-derived encodings, fixed and variable lengths
|
|
//
|
|
else if (tryEncoding(signature, (byte) 0x3c, (byte) 0x3f,
|
|
(byte) 0x78, (byte) 0x6d))
|
|
{
|
|
// ASCII derived
|
|
// 0x3c 0x3f 0x78 0x6d: UTF-8 or other 8-bit markup (read ENCODING)
|
|
encoding = ENCODING_UTF_8;
|
|
prefetchASCIIEncodingDecl();
|
|
}
|
|
else if (signature[0] == (byte) 0xef
|
|
&& signature[1] == (byte) 0xbb
|
|
&& signature[2] == (byte) 0xbf)
|
|
{
|
|
// 0xef 0xbb 0xbf: UTF-8 BOM (not part of document text)
|
|
// this un-needed notion slipped into XML 2nd ed through a
|
|
// "non-normative" erratum; now required by MSFT and UDDI,
|
|
// and E22 made it normative.
|
|
encoding = ENCODING_UTF_8;
|
|
is.read(); is.read(); is.read();
|
|
}
|
|
else
|
|
{
|
|
// 4c 6f a7 94 ... we don't understand EBCDIC flavors
|
|
// ... but we COULD at least kick in some fixed code page
|
|
|
|
// (default) UTF-8 without encoding/XML declaration
|
|
encoding = ENCODING_UTF_8;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Check for a four-byte signature.
|
|
* <p>Utility routine for detectEncoding ().
|
|
* <p>Always looks for some part of "<?XML" in a specific encoding.
|
|
* @param sig The first four bytes read.
|
|
* @param b1 The first byte of the signature
|
|
* @param b2 The second byte of the signature
|
|
* @param b3 The third byte of the signature
|
|
* @param b4 The fourth byte of the signature
|
|
* @see #detectEncoding
|
|
*/
|
|
private static boolean tryEncoding(byte[] sig, byte b1, byte b2,
|
|
byte b3, byte b4)
|
|
{
|
|
return (sig[0] == b1 && sig[1] == b2
|
|
&& sig[2] == b3 && sig[3] == b4);
|
|
}
|
|
|
|
/**
|
|
* Check for a two-byte signature.
|
|
* <p>Looks for a UCS-2 byte-order mark.
|
|
* <p>Utility routine for detectEncoding ().
|
|
* @param sig The first four bytes read.
|
|
* @param b1 The first byte of the signature
|
|
* @param b2 The second byte of the signature
|
|
* @see #detectEncoding
|
|
*/
|
|
private static boolean tryEncoding(byte[] sig, byte b1, byte b2)
|
|
{
|
|
return ((sig[0] == b1) && (sig[1] == b2));
|
|
}
|
|
|
|
/**
|
|
* This method pushes a string back onto input.
|
|
* <p>It is useful either as the expansion of an internal entity,
|
|
* or for backtracking during the parse.
|
|
* <p>Call pushCharArray () to do the actual work.
|
|
* @param s The string to push back onto input.
|
|
* @see #pushCharArray
|
|
*/
|
|
private void pushString(String ename, String s)
|
|
throws SAXException
|
|
{
|
|
char[] ch = s.toCharArray();
|
|
pushCharArray(ename, ch, 0, ch.length);
|
|
}
|
|
|
|
/**
|
|
* Push a new internal input source.
|
|
* <p>This method is useful for expanding an internal entity,
|
|
* or for unreading a string of characters. It creates a new
|
|
* readBuffer containing the characters in the array, instead
|
|
* of characters converted from an input byte stream.
|
|
* @param ch The char array to push.
|
|
* @see #pushString
|
|
* @see #pushURL
|
|
* @see #readBuffer
|
|
* @see #sourceType
|
|
* @see #pushInput
|
|
*/
|
|
private void pushCharArray(String ename, char[] ch, int start, int length)
|
|
throws SAXException
|
|
{
|
|
// Push the existing status
|
|
pushInput(ename);
|
|
if (ename != null && doReport)
|
|
{
|
|
dataBufferFlush();
|
|
handler.startInternalEntity(ename);
|
|
}
|
|
sourceType = INPUT_INTERNAL;
|
|
readBuffer = ch;
|
|
readBufferPos = start;
|
|
readBufferLength = length;
|
|
readBufferOverflow = -1;
|
|
}
|
|
|
|
/**
|
|
* Save the current input source onto the stack.
|
|
* <p>This method saves all of the global variables associated with
|
|
* the current input source, so that they can be restored when a new
|
|
* input source has finished. It also tests for entity recursion.
|
|
* <p>The method saves the following global variables onto a stack
|
|
* using a fixed-length array:
|
|
* <ol>
|
|
* <li>sourceType
|
|
* <li>externalEntity
|
|
* <li>readBuffer
|
|
* <li>readBufferPos
|
|
* <li>readBufferLength
|
|
* <li>line
|
|
* <li>encoding
|
|
* </ol>
|
|
* @param ename The name of the entity (if any) causing the new input.
|
|
* @see #popInput
|
|
* @see #sourceType
|
|
* @see #externalEntity
|
|
* @see #readBuffer
|
|
* @see #readBufferPos
|
|
* @see #readBufferLength
|
|
* @see #line
|
|
* @see #encoding
|
|
*/
|
|
private void pushInput(String ename)
|
|
throws SAXException
|
|
{
|
|
// Check for entity recursion.
|
|
if (ename != null)
|
|
{
|
|
Iterator entities = entityStack.iterator();
|
|
while (entities.hasNext())
|
|
{
|
|
String e = (String) entities.next();
|
|
if (e != null && e == ename)
|
|
{
|
|
error("recursive reference to entity", ename, null);
|
|
}
|
|
}
|
|
}
|
|
entityStack.addLast(ename);
|
|
|
|
// Don't bother if there is no current input.
|
|
if (sourceType == INPUT_NONE)
|
|
{
|
|
return;
|
|
}
|
|
|
|
// Set up a snapshot of the current
|
|
// input source.
|
|
Input input = new Input();
|
|
|
|
input.sourceType = sourceType;
|
|
input.externalEntity = externalEntity;
|
|
input.readBuffer = readBuffer;
|
|
input.readBufferPos = readBufferPos;
|
|
input.readBufferLength = readBufferLength;
|
|
input.line = line;
|
|
input.encoding = encoding;
|
|
input.readBufferOverflow = readBufferOverflow;
|
|
input.is = is;
|
|
input.currentByteCount = currentByteCount;
|
|
input.column = column;
|
|
input.reader = reader;
|
|
|
|
// Push it onto the stack.
|
|
inputStack.addLast(input);
|
|
}
|
|
|
|
/**
|
|
* Restore a previous input source.
|
|
* <p>This method restores all of the global variables associated with
|
|
* the current input source.
|
|
* @exception java.io.EOFException
|
|
* If there are no more entries on the input stack.
|
|
* @see #pushInput
|
|
* @see #sourceType
|
|
* @see #externalEntity
|
|
* @see #readBuffer
|
|
* @see #readBufferPos
|
|
* @see #readBufferLength
|
|
* @see #line
|
|
* @see #encoding
|
|
*/
|
|
private void popInput()
|
|
throws SAXException, IOException
|
|
{
|
|
String ename = (String) entityStack.removeLast();
|
|
|
|
if (ename != null && doReport)
|
|
{
|
|
dataBufferFlush();
|
|
}
|
|
switch (sourceType)
|
|
{
|
|
case INPUT_STREAM:
|
|
handler.endExternalEntity(ename);
|
|
is.close();
|
|
break;
|
|
case INPUT_READER:
|
|
handler.endExternalEntity(ename);
|
|
reader.close();
|
|
break;
|
|
case INPUT_INTERNAL:
|
|
if (ename != null && doReport)
|
|
{
|
|
handler.endInternalEntity(ename);
|
|
}
|
|
break;
|
|
}
|
|
|
|
// Throw an EOFException if there
|
|
// is nothing else to pop.
|
|
if (inputStack.isEmpty())
|
|
{
|
|
throw new EOFException("no more input");
|
|
}
|
|
|
|
Input input = (Input) inputStack.removeLast();
|
|
|
|
sourceType = input.sourceType;
|
|
externalEntity = input.externalEntity;
|
|
readBuffer = input.readBuffer;
|
|
readBufferPos = input.readBufferPos;
|
|
readBufferLength = input.readBufferLength;
|
|
line = input.line;
|
|
encoding = input.encoding;
|
|
readBufferOverflow = input.readBufferOverflow;
|
|
is = input.is;
|
|
currentByteCount = input.currentByteCount;
|
|
column = input.column;
|
|
reader = input.reader;
|
|
}
|
|
|
|
/**
|
|
* Return true if we can read the expected character.
|
|
* <p>Note that the character will be removed from the input stream
|
|
* on success, but will be put back on failure. Do not attempt to
|
|
* read the character again if the method succeeds.
|
|
* @param delim The character that should appear next. For a
|
|
* insensitive match, you must supply this in upper-case.
|
|
* @return true if the character was successfully read, or false if
|
|
* it was not.
|
|
* @see #tryRead (String)
|
|
*/
|
|
private boolean tryRead(char delim)
|
|
throws SAXException, IOException
|
|
{
|
|
char c;
|
|
|
|
// Read the character
|
|
c = readCh();
|
|
|
|
// Test for a match, and push the character
|
|
// back if the match fails.
|
|
if (c == delim)
|
|
{
|
|
return true;
|
|
}
|
|
else
|
|
{
|
|
unread(c);
|
|
return false;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Return true if we can read the expected string.
|
|
* <p>This is simply a convenience method.
|
|
* <p>Note that the string will be removed from the input stream
|
|
* on success, but will be put back on failure. Do not attempt to
|
|
* read the string again if the method succeeds.
|
|
* <p>This method will push back a character rather than an
|
|
* array whenever possible (probably the majority of cases).
|
|
* @param delim The string that should appear next.
|
|
* @return true if the string was successfully read, or false if
|
|
* it was not.
|
|
* @see #tryRead (char)
|
|
*/
|
|
private boolean tryRead(String delim)
|
|
throws SAXException, IOException
|
|
{
|
|
return tryRead(delim.toCharArray());
|
|
}
|
|
|
|
private boolean tryRead(char[] ch)
|
|
throws SAXException, IOException
|
|
{
|
|
char c;
|
|
|
|
// Compare the input, character-
|
|
// by character.
|
|
|
|
for (int i = 0; i < ch.length; i++)
|
|
{
|
|
c = readCh();
|
|
if (c != ch[i])
|
|
{
|
|
unread(c);
|
|
if (i != 0)
|
|
{
|
|
unread(ch, i);
|
|
}
|
|
return false;
|
|
}
|
|
}
|
|
return true;
|
|
}
|
|
|
|
/**
|
|
* Return true if we can read some whitespace.
|
|
* <p>This is simply a convenience method.
|
|
* <p>This method will push back a character rather than an
|
|
* array whenever possible (probably the majority of cases).
|
|
* @return true if whitespace was found.
|
|
*/
|
|
private boolean tryWhitespace()
|
|
throws SAXException, IOException
|
|
{
|
|
char c;
|
|
c = readCh();
|
|
if (isWhitespace(c))
|
|
{
|
|
skipWhitespace();
|
|
return true;
|
|
}
|
|
else
|
|
{
|
|
unread(c);
|
|
return false;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Read all data until we find the specified string.
|
|
* This is useful for scanning CDATA sections and PIs.
|
|
* <p>This is inefficient right now, since it calls tryRead ()
|
|
* for every character.
|
|
* @param delim The string delimiter
|
|
* @see #tryRead (String, boolean)
|
|
* @see #readCh
|
|
*/
|
|
private void parseUntil(String delim)
|
|
throws SAXException, IOException
|
|
{
|
|
parseUntil(delim.toCharArray());
|
|
}
|
|
|
|
private void parseUntil(char[] delim)
|
|
throws SAXException, IOException
|
|
{
|
|
char c;
|
|
int startLine = line;
|
|
|
|
try
|
|
{
|
|
while (!tryRead(delim))
|
|
{
|
|
c = readCh();
|
|
dataBufferAppend(c);
|
|
}
|
|
}
|
|
catch (EOFException e)
|
|
{
|
|
error("end of input while looking for delimiter "
|
|
+ "(started on line " + startLine
|
|
+ ')', null, new String(delim));
|
|
}
|
|
}
|
|
|
|
//////////////////////////////////////////////////////////////////////
|
|
// Low-level I/O.
|
|
//////////////////////////////////////////////////////////////////////
|
|
|
|
/**
|
|
* Prefetch US-ASCII XML/text decl from input stream into read buffer.
|
|
* Doesn't buffer more than absolutely needed, so that when an encoding
|
|
* decl says we need to create an InputStreamReader, we can discard our
|
|
* buffer and reset(). Caller knows the first chars of the decl exist
|
|
* in the input stream.
|
|
*/
|
|
private void prefetchASCIIEncodingDecl()
|
|
throws SAXException, IOException
|
|
{
|
|
int ch;
|
|
readBufferPos = readBufferLength = 0;
|
|
|
|
is.mark(readBuffer.length);
|
|
while (true)
|
|
{
|
|
ch = is.read();
|
|
readBuffer[readBufferLength++] = (char) ch;
|
|
switch (ch)
|
|
{
|
|
case (int) '>':
|
|
return;
|
|
case -1:
|
|
error("file ends before end of XML or encoding declaration.",
|
|
null, "?>");
|
|
}
|
|
if (readBuffer.length == readBufferLength)
|
|
{
|
|
error("unfinished XML or encoding declaration");
|
|
}
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Read a chunk of data from an external input source.
|
|
* <p>This is simply a front-end that fills the rawReadBuffer
|
|
* with bytes, then calls the appropriate encoding handler.
|
|
* @see #encoding
|
|
* @see #rawReadBuffer
|
|
* @see #readBuffer
|
|
* @see #filterCR
|
|
* @see #copyUtf8ReadBuffer
|
|
* @see #copyIso8859_1ReadBuffer
|
|
* @see #copyUcs_2ReadBuffer
|
|
* @see #copyUcs_4ReadBuffer
|
|
*/
|
|
private void readDataChunk()
|
|
throws SAXException, IOException
|
|
{
|
|
int count;
|
|
|
|
// See if we have any overflow (filterCR sets for CR at end)
|
|
if (readBufferOverflow > -1)
|
|
{
|
|
readBuffer[0] = (char) readBufferOverflow;
|
|
readBufferOverflow = -1;
|
|
readBufferPos = 1;
|
|
sawCR = true;
|
|
}
|
|
else
|
|
{
|
|
readBufferPos = 0;
|
|
sawCR = false;
|
|
}
|
|
|
|
// input from a character stream.
|
|
if (sourceType == INPUT_READER)
|
|
{
|
|
count = reader.read(readBuffer,
|
|
readBufferPos, READ_BUFFER_MAX - readBufferPos);
|
|
if (count < 0)
|
|
{
|
|
readBufferLength = readBufferPos;
|
|
}
|
|
else
|
|
{
|
|
readBufferLength = readBufferPos + count;
|
|
}
|
|
if (readBufferLength > 0)
|
|
{
|
|
filterCR(count >= 0);
|
|
}
|
|
sawCR = false;
|
|
return;
|
|
}
|
|
|
|
// Read as many bytes as possible into the raw buffer.
|
|
count = is.read(rawReadBuffer, 0, READ_BUFFER_MAX);
|
|
|
|
// Dispatch to an encoding-specific reader method to populate
|
|
// the readBuffer. In most parser speed profiles, these routines
|
|
// show up at the top of the CPU usage chart.
|
|
if (count > 0)
|
|
{
|
|
switch (encoding)
|
|
{
|
|
// one byte builtins
|
|
case ENCODING_ASCII:
|
|
copyIso8859_1ReadBuffer(count, (char) 0x0080);
|
|
break;
|
|
case ENCODING_UTF_8:
|
|
copyUtf8ReadBuffer(count);
|
|
break;
|
|
case ENCODING_ISO_8859_1:
|
|
copyIso8859_1ReadBuffer(count, (char) 0);
|
|
break;
|
|
|
|
// two byte builtins
|
|
case ENCODING_UCS_2_12:
|
|
copyUcs2ReadBuffer(count, 8, 0);
|
|
break;
|
|
case ENCODING_UCS_2_21:
|
|
copyUcs2ReadBuffer(count, 0, 8);
|
|
break;
|
|
|
|
// four byte builtins
|
|
case ENCODING_UCS_4_1234:
|
|
copyUcs4ReadBuffer(count, 24, 16, 8, 0);
|
|
break;
|
|
case ENCODING_UCS_4_4321:
|
|
copyUcs4ReadBuffer(count, 0, 8, 16, 24);
|
|
break;
|
|
case ENCODING_UCS_4_2143:
|
|
copyUcs4ReadBuffer(count, 16, 24, 0, 8);
|
|
break;
|
|
case ENCODING_UCS_4_3412:
|
|
copyUcs4ReadBuffer(count, 8, 0, 24, 16);
|
|
break;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
readBufferLength = readBufferPos;
|
|
}
|
|
|
|
readBufferPos = 0;
|
|
|
|
// Filter out all carriage returns if we've seen any
|
|
// (including any saved from a previous read)
|
|
if (sawCR)
|
|
{
|
|
filterCR(count >= 0);
|
|
sawCR = false;
|
|
|
|
// must actively report EOF, lest some CRs get lost.
|
|
if (readBufferLength == 0 && count >= 0)
|
|
{
|
|
readDataChunk();
|
|
}
|
|
}
|
|
|
|
if (count > 0)
|
|
{
|
|
currentByteCount += count;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Filter carriage returns in the read buffer.
|
|
* CRLF becomes LF; CR becomes LF.
|
|
* @param moreData true iff more data might come from the same source
|
|
* @see #readDataChunk
|
|
* @see #readBuffer
|
|
* @see #readBufferOverflow
|
|
*/
|
|
private void filterCR(boolean moreData)
|
|
{
|
|
int i, j;
|
|
|
|
readBufferOverflow = -1;
|
|
|
|
loop:
|
|
for (i = j = readBufferPos; j < readBufferLength; i++, j++)
|
|
{
|
|
switch (readBuffer[j])
|
|
{
|
|
case '\r':
|
|
if (j == readBufferLength - 1)
|
|
{
|
|
if (moreData)
|
|
{
|
|
readBufferOverflow = '\r';
|
|
readBufferLength--;
|
|
}
|
|
else // CR at end of buffer
|
|
{
|
|
readBuffer[i++] = '\n';
|
|
}
|
|
break loop;
|
|
}
|
|
else if (readBuffer[j + 1] == '\n')
|
|
{
|
|
j++;
|
|
}
|
|
readBuffer[i] = '\n';
|
|
break;
|
|
|
|
case '\n':
|
|
default:
|
|
readBuffer[i] = readBuffer[j];
|
|
break;
|
|
}
|
|
}
|
|
readBufferLength = i;
|
|
}
|
|
|
|
/**
|
|
* Convert a buffer of UTF-8-encoded bytes into UTF-16 characters.
|
|
* <p>When readDataChunk () calls this method, the raw bytes are in
|
|
* rawReadBuffer, and the final characters will appear in
|
|
* readBuffer.
|
|
* <p>Note that as of Unicode 3.1, good practice became a requirement,
|
|
* so that each Unicode character has exactly one UTF-8 representation.
|
|
* @param count The number of bytes to convert.
|
|
* @see #readDataChunk
|
|
* @see #rawReadBuffer
|
|
* @see #readBuffer
|
|
* @see #getNextUtf8Byte
|
|
*/
|
|
private void copyUtf8ReadBuffer(int count)
|
|
throws SAXException, IOException
|
|
{
|
|
int i = 0;
|
|
int j = readBufferPos;
|
|
int b1;
|
|
char c = 0;
|
|
|
|
/*
|
|
// check once, so the runtime won't (if it's smart enough)
|
|
if (count < 0 || count > rawReadBuffer.length)
|
|
throw new ArrayIndexOutOfBoundsException (Integer.toString (count));
|
|
*/
|
|
|
|
while (i < count)
|
|
{
|
|
b1 = rawReadBuffer[i++];
|
|
|
|
// Determine whether we are dealing
|
|
// with a one-, two-, three-, or four-
|
|
// byte sequence.
|
|
if (b1 < 0)
|
|
{
|
|
if ((b1 & 0xe0) == 0xc0)
|
|
{
|
|
// 2-byte sequence: 00000yyyyyxxxxxx = 110yyyyy 10xxxxxx
|
|
c = (char) (((b1 & 0x1f) << 6)
|
|
| getNextUtf8Byte(i++, count));
|
|
if (c < 0x0080)
|
|
{
|
|
encodingError("Illegal two byte UTF-8 sequence",
|
|
c, 0);
|
|
}
|
|
|
|
//Sec 2.11
|
|
// [1] the two-character sequence #xD #xA
|
|
// [2] the two-character sequence #xD #x85
|
|
if ((c == 0x0085 || c == 0x000a) && sawCR)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
// Sec 2.11
|
|
// [3] the single character #x85
|
|
|
|
if (c == 0x0085 && xmlVersion == XML_11)
|
|
{
|
|
readBuffer[j++] = '\r';
|
|
}
|
|
}
|
|
else if ((b1 & 0xf0) == 0xe0)
|
|
{
|
|
// 3-byte sequence:
|
|
// zzzzyyyyyyxxxxxx = 1110zzzz 10yyyyyy 10xxxxxx
|
|
// most CJKV characters
|
|
c = (char) (((b1 & 0x0f) << 12) |
|
|
(getNextUtf8Byte(i++, count) << 6) |
|
|
getNextUtf8Byte(i++, count));
|
|
//sec 2.11
|
|
//[4] the single character #x2028
|
|
if (c == 0x2028 && xmlVersion == XML_11)
|
|
{
|
|
readBuffer[j++] = '\r';
|
|
sawCR = true;
|
|
continue;
|
|
}
|
|
if (c < 0x0800 || (c >= 0xd800 && c <= 0xdfff))
|
|
{
|
|
encodingError("Illegal three byte UTF-8 sequence",
|
|
c, 0);
|
|
}
|
|
}
|
|
else if ((b1 & 0xf8) == 0xf0)
|
|
{
|
|
// 4-byte sequence: 11101110wwwwzzzzyy + 110111yyyyxxxxxx
|
|
// = 11110uuu 10uuzzzz 10yyyyyy 10xxxxxx
|
|
// (uuuuu = wwww + 1)
|
|
// "Surrogate Pairs" ... from the "Astral Planes"
|
|
// Unicode 3.1 assigned the first characters there
|
|
int iso646 = b1 & 07;
|
|
iso646 = (iso646 << 6) + getNextUtf8Byte(i++, count);
|
|
iso646 = (iso646 << 6) + getNextUtf8Byte(i++, count);
|
|
iso646 = (iso646 << 6) + getNextUtf8Byte(i++, count);
|
|
|
|
if (iso646 <= 0xffff)
|
|
{
|
|
encodingError("Illegal four byte UTF-8 sequence",
|
|
iso646, 0);
|
|
}
|
|
else
|
|
{
|
|
if (iso646 > 0x0010ffff)
|
|
{
|
|
encodingError("UTF-8 value out of range for Unicode",
|
|
iso646, 0);
|
|
}
|
|
iso646 -= 0x010000;
|
|
readBuffer[j++] = (char) (0xd800 | (iso646 >> 10));
|
|
readBuffer[j++] = (char) (0xdc00 | (iso646 & 0x03ff));
|
|
continue;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
// The five and six byte encodings aren't supported;
|
|
// they exceed the Unicode (and XML) range.
|
|
encodingError("unsupported five or six byte UTF-8 sequence",
|
|
0xff & b1, i);
|
|
// NOTREACHED
|
|
c = 0;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
// 1-byte sequence: 000000000xxxxxxx = 0xxxxxxx
|
|
// (US-ASCII character, "common" case, one branch to here)
|
|
c = (char) b1;
|
|
}
|
|
readBuffer[j++] = c;
|
|
if (c == '\r')
|
|
{
|
|
sawCR = true;
|
|
}
|
|
}
|
|
// How many characters have we read?
|
|
readBufferLength = j;
|
|
}
|
|
|
|
/**
|
|
* Return the next byte value in a UTF-8 sequence.
|
|
* If it is not possible to get a byte from the current
|
|
* entity, throw an exception.
|
|
* @param pos The current position in the rawReadBuffer.
|
|
* @param count The number of bytes in the rawReadBuffer
|
|
* @return The significant six bits of a non-initial byte in
|
|
* a UTF-8 sequence.
|
|
* @exception EOFException If the sequence is incomplete.
|
|
*/
|
|
private int getNextUtf8Byte(int pos, int count)
|
|
throws SAXException, IOException
|
|
{
|
|
int val;
|
|
|
|
// Take a character from the buffer
|
|
// or from the actual input stream.
|
|
if (pos < count)
|
|
{
|
|
val = rawReadBuffer[pos];
|
|
}
|
|
else
|
|
{
|
|
val = is.read();
|
|
if (val == -1)
|
|
{
|
|
encodingError("unfinished multi-byte UTF-8 sequence at EOF",
|
|
-1, pos);
|
|
}
|
|
}
|
|
|
|
// Check for the correct bits at the start.
|
|
if ((val & 0xc0) != 0x80)
|
|
{
|
|
encodingError("bad continuation of multi-byte UTF-8 sequence",
|
|
val, pos + 1);
|
|
}
|
|
|
|
// Return the significant bits.
|
|
return (val & 0x3f);
|
|
}
|
|
|
|
/**
|
|
* Convert a buffer of US-ASCII or ISO-8859-1-encoded bytes into
|
|
* UTF-16 characters.
|
|
*
|
|
* <p>When readDataChunk () calls this method, the raw bytes are in
|
|
* rawReadBuffer, and the final characters will appear in
|
|
* readBuffer.
|
|
*
|
|
* @param count The number of bytes to convert.
|
|
* @param mask For ASCII conversion, 0x7f; else, 0xff.
|
|
* @see #readDataChunk
|
|
* @see #rawReadBuffer
|
|
* @see #readBuffer
|
|
*/
|
|
private void copyIso8859_1ReadBuffer(int count, char mask)
|
|
throws IOException
|
|
{
|
|
int i, j;
|
|
for (i = 0, j = readBufferPos; i < count; i++, j++)
|
|
{
|
|
char c = (char) (rawReadBuffer[i] & 0xff);
|
|
if ((c & mask) != 0)
|
|
{
|
|
throw new CharConversionException("non-ASCII character U+"
|
|
+ Integer.toHexString(c));
|
|
}
|
|
if (c == 0x0085 && xmlVersion == XML_11)
|
|
{
|
|
c = '\r';
|
|
}
|
|
readBuffer[j] = c;
|
|
if (c == '\r')
|
|
{
|
|
sawCR = true;
|
|
}
|
|
}
|
|
readBufferLength = j;
|
|
}
|
|
|
|
/**
|
|
* Convert a buffer of UCS-2-encoded bytes into UTF-16 characters
|
|
* (as used in Java string manipulation).
|
|
*
|
|
* <p>When readDataChunk () calls this method, the raw bytes are in
|
|
* rawReadBuffer, and the final characters will appear in
|
|
* readBuffer.
|
|
* @param count The number of bytes to convert.
|
|
* @param shift1 The number of bits to shift byte 1.
|
|
* @param shift2 The number of bits to shift byte 2
|
|
* @see #readDataChunk
|
|
* @see #rawReadBuffer
|
|
* @see #readBuffer
|
|
*/
|
|
private void copyUcs2ReadBuffer(int count, int shift1, int shift2)
|
|
throws SAXException
|
|
{
|
|
int j = readBufferPos;
|
|
|
|
if (count > 0 && (count % 2) != 0)
|
|
{
|
|
encodingError("odd number of bytes in UCS-2 encoding", -1, count);
|
|
}
|
|
// The loops are faster with less internal brancing; hence two
|
|
if (shift1 == 0)
|
|
{ // "UTF-16-LE"
|
|
for (int i = 0; i < count; i += 2)
|
|
{
|
|
char c = (char) (rawReadBuffer[i + 1] << 8);
|
|
c |= 0xff & rawReadBuffer[i];
|
|
readBuffer[j++] = c;
|
|
if (c == '\r')
|
|
{
|
|
sawCR = true;
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{ // "UTF-16-BE"
|
|
for (int i = 0; i < count; i += 2)
|
|
{
|
|
char c = (char) (rawReadBuffer[i] << 8);
|
|
c |= 0xff & rawReadBuffer[i + 1];
|
|
readBuffer[j++] = c;
|
|
if (c == '\r')
|
|
{
|
|
sawCR = true;
|
|
}
|
|
}
|
|
}
|
|
readBufferLength = j;
|
|
}
|
|
|
|
/**
|
|
* Convert a buffer of UCS-4-encoded bytes into UTF-16 characters.
|
|
*
|
|
* <p>When readDataChunk () calls this method, the raw bytes are in
|
|
* rawReadBuffer, and the final characters will appear in
|
|
* readBuffer.
|
|
* <p>Java has Unicode chars, and this routine uses surrogate pairs
|
|
* for ISO-10646 values between 0x00010000 and 0x000fffff. An
|
|
* exception is thrown if the ISO-10646 character has no Unicode
|
|
* representation.
|
|
*
|
|
* @param count The number of bytes to convert.
|
|
* @param shift1 The number of bits to shift byte 1.
|
|
* @param shift2 The number of bits to shift byte 2
|
|
* @param shift3 The number of bits to shift byte 2
|
|
* @param shift4 The number of bits to shift byte 2
|
|
* @see #readDataChunk
|
|
* @see #rawReadBuffer
|
|
* @see #readBuffer
|
|
*/
|
|
private void copyUcs4ReadBuffer(int count, int shift1, int shift2,
|
|
int shift3, int shift4)
|
|
throws SAXException
|
|
{
|
|
int j = readBufferPos;
|
|
|
|
if (count > 0 && (count % 4) != 0)
|
|
{
|
|
encodingError("number of bytes in UCS-4 encoding " +
|
|
"not divisible by 4",
|
|
-1, count);
|
|
}
|
|
for (int i = 0; i < count; i += 4)
|
|
{
|
|
int value = (((rawReadBuffer [i] & 0xff) << shift1) |
|
|
((rawReadBuffer [i + 1] & 0xff) << shift2) |
|
|
((rawReadBuffer [i + 2] & 0xff) << shift3) |
|
|
((rawReadBuffer [i + 3] & 0xff) << shift4));
|
|
if (value < 0x0000ffff)
|
|
{
|
|
readBuffer [j++] = (char) value;
|
|
if (value == (int) '\r')
|
|
{
|
|
sawCR = true;
|
|
}
|
|
}
|
|
else if (value < 0x0010ffff)
|
|
{
|
|
value -= 0x010000;
|
|
readBuffer[j++] = (char) (0xd8 | ((value >> 10) & 0x03ff));
|
|
readBuffer[j++] = (char) (0xdc | (value & 0x03ff));
|
|
}
|
|
else
|
|
{
|
|
encodingError("UCS-4 value out of range for Unicode",
|
|
value, i);
|
|
}
|
|
}
|
|
readBufferLength = j;
|
|
}
|
|
|
|
/**
|
|
* Report a character encoding error.
|
|
*/
|
|
private void encodingError(String message, int value, int offset)
|
|
throws SAXException
|
|
{
|
|
if (value != -1)
|
|
{
|
|
message = message + " (character code: 0x" +
|
|
Integer.toHexString(value) + ')';
|
|
error(message);
|
|
}
|
|
}
|
|
|
|
//////////////////////////////////////////////////////////////////////
|
|
// Local Variables.
|
|
//////////////////////////////////////////////////////////////////////
|
|
|
|
/**
|
|
* Re-initialize the variables for each parse.
|
|
*/
|
|
private void initializeVariables()
|
|
{
|
|
// First line
|
|
line = 1;
|
|
column = 0;
|
|
|
|
// Set up the buffers for data and names
|
|
dataBufferPos = 0;
|
|
dataBuffer = new char[DATA_BUFFER_INITIAL];
|
|
nameBufferPos = 0;
|
|
nameBuffer = new char[NAME_BUFFER_INITIAL];
|
|
|
|
// Set up the DTD hash tables
|
|
elementInfo = new HashMap();
|
|
entityInfo = new HashMap();
|
|
notationInfo = new HashMap();
|
|
skippedPE = false;
|
|
|
|
// Set up the variables for the current
|
|
// element context.
|
|
currentElement = null;
|
|
currentElementContent = CONTENT_UNDECLARED;
|
|
|
|
// Set up the input variables
|
|
sourceType = INPUT_NONE;
|
|
inputStack = new LinkedList();
|
|
entityStack = new LinkedList();
|
|
externalEntity = null;
|
|
tagAttributePos = 0;
|
|
tagAttributes = new String[100];
|
|
rawReadBuffer = new byte[READ_BUFFER_MAX];
|
|
readBufferOverflow = -1;
|
|
|
|
scratch = new InputSource();
|
|
|
|
inLiteral = false;
|
|
expandPE = false;
|
|
peIsError = false;
|
|
|
|
doReport = false;
|
|
|
|
inCDATA = false;
|
|
|
|
symbolTable = new Object[SYMBOL_TABLE_LENGTH][];
|
|
}
|
|
|
|
static class ExternalIdentifiers
|
|
{
|
|
|
|
String publicId;
|
|
String systemId;
|
|
String baseUri;
|
|
|
|
ExternalIdentifiers()
|
|
{
|
|
}
|
|
|
|
ExternalIdentifiers(String publicId, String systemId, String baseUri)
|
|
{
|
|
this.publicId = publicId;
|
|
this.systemId = systemId;
|
|
this.baseUri = baseUri;
|
|
}
|
|
|
|
}
|
|
|
|
static class EntityInfo
|
|
{
|
|
|
|
int type;
|
|
ExternalIdentifiers ids;
|
|
String value;
|
|
String notationName;
|
|
|
|
}
|
|
|
|
static class AttributeDecl
|
|
{
|
|
|
|
String type;
|
|
String value;
|
|
int valueType;
|
|
String enumeration;
|
|
String defaultValue;
|
|
|
|
}
|
|
|
|
static class ElementDecl
|
|
{
|
|
|
|
int contentType;
|
|
String contentModel;
|
|
HashMap attributes;
|
|
|
|
}
|
|
|
|
static class Input
|
|
{
|
|
|
|
int sourceType;
|
|
URLConnection externalEntity;
|
|
char[] readBuffer;
|
|
int readBufferPos;
|
|
int readBufferLength;
|
|
int line;
|
|
int encoding;
|
|
int readBufferOverflow;
|
|
InputStream is;
|
|
int currentByteCount;
|
|
int column;
|
|
Reader reader;
|
|
|
|
}
|
|
|
|
}
|