/** * Computes a string containing the current parse location or an empty string if there is no locator. * * @return the location as debug-text. */ private String getLocatorString() { final Locator locator = getLocator(); if ( locator == null ) { return ""; } final StringBuffer message = new StringBuffer( 100 ); message.append( " [Location: Line=" ); message.append( locator.getLineNumber() ); message.append( " Column=" ); message.append( locator.getColumnNumber() ); message.append( "] " ); return message.toString(); }
if ( !this.tagName.equals( tagName ) || !this.uri.equals( uri ) ) { throw new ParseException( "Expected <" + this.tagName + ">, found <" + tagName + '>', getLocator() );
/** * This method is called at the end of an element. * * @param tagName the tag name. * @throws SAXException if there is a parsing error. */ public final void endElement( final String uri, final String tagName ) throws SAXException { if ( this.tagName.equals( tagName ) && this.uri.equals( uri ) ) { doneParsing(); this.rootHandler.unwind( uri, tagName ); } else { throw new ParseException( "Illegal Parser State." + toString(), getLocator() ); } }
/** * Parses an external file using LibLoader and returns the parsed result as an object of type * <code>targetClass</code>. The file is given as relative pathname (relative to the current source file). The current * helper-methods are used as parse-parameters for the external parsing. * * @param file the file to be parsed. * @param targetClass the target type of the parse operation. * @param map the map of parse parameters. * @return the result, never null. * @throws ParseException if parsing the result failed for some reason. * @throws ResourceLoadingException if there was an IO error loading the resource. * @see #deriveParseParameters() */ protected Object performExternalParsing( final String file, final Class targetClass, final Map map ) throws ParseException, ResourceLoadingException { try { final ResourceManager resourceManager = rootHandler.getResourceManager(); final ResourceKey source = rootHandler.getSource(); final ResourceKey target = resourceManager.deriveKey( source, file, map ); final DependencyCollector dc = rootHandler.getDependencyCollector(); final Resource resource = resourceManager.create( target, rootHandler.getContext(), targetClass ); dc.add( resource ); return resource.getResource(); } catch ( ResourceLoadingException rle ) { throw rle; } catch ( ResourceException e ) { throw new ParseException( "Failure while loading data: " + file, e, getLocator() ); } }