Package org.apache.xml.resolver.readers
Class TextCatalogReader
- java.lang.Object
-
- org.apache.xml.resolver.readers.TextCatalogReader
-
- All Implemented Interfaces:
CatalogReader
- Direct Known Subclasses:
TR9401CatalogReader
public class TextCatalogReader extends java.lang.Object implements CatalogReader
Parses plain text Catalog files.This class reads plain text Open Catalog files.
- Version:
- 1.0
- Author:
- Norman Walsh Norman.Walsh@Sun.COM
- See Also:
Catalog
-
-
Field Summary
Fields Modifier and Type Field Description protected boolean
caseSensitive
Are keywords in the catalog case sensitive?protected java.io.InputStream
catfile
The input stream used to read the catalogprotected int[]
stack
Character lookahead stack.protected java.util.Stack
tokenStack
Token stack.protected int
top
The current position on the lookahead stack
-
Constructor Summary
Constructors Constructor Description TextCatalogReader()
Construct a CatalogReader object.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
finalize()
The destructor.boolean
getCaseSensitive()
protected int
nextChar()
Return the next logical character from the input stream.protected java.lang.String
nextToken()
Return the next token in the catalog file.void
readCatalog(Catalog catalog, java.io.InputStream is)
Read a catalog from an input stream.void
readCatalog(Catalog catalog, java.lang.String fileUrl)
Start parsing a text catalog file.void
setCaseSensitive(boolean isCaseSensitive)
-
-
-
Field Detail
-
catfile
protected java.io.InputStream catfile
The input stream used to read the catalog
-
stack
protected int[] stack
Character lookahead stack. Reading a catalog sometimes requires up to two characters of lookahead.
-
tokenStack
protected java.util.Stack tokenStack
Token stack. Recognizing an unexpected catalog entry requires the ability to "push back" a token.
-
top
protected int top
The current position on the lookahead stack
-
caseSensitive
protected boolean caseSensitive
Are keywords in the catalog case sensitive?
-
-
Method Detail
-
setCaseSensitive
public void setCaseSensitive(boolean isCaseSensitive)
-
getCaseSensitive
public boolean getCaseSensitive()
-
readCatalog
public void readCatalog(Catalog catalog, java.lang.String fileUrl) throws java.net.MalformedURLException, java.io.IOException
Start parsing a text catalog file. The file is actually read and parsed as needed bynextEntry
.- Specified by:
readCatalog
in interfaceCatalogReader
- Parameters:
fileUrl
- The URL or filename of the catalog file to processcatalog
- The catalog for which this reader is called.- Throws:
java.net.MalformedURLException
- Improper fileUrljava.io.IOException
- Error reading catalog file
-
readCatalog
public void readCatalog(Catalog catalog, java.io.InputStream is) throws java.net.MalformedURLException, java.io.IOException
Description copied from interface:CatalogReader
Read a catalog from an input stream.This class reads a catalog from an input stream.
- Specified by:
readCatalog
in interfaceCatalogReader
- Parameters:
catalog
- The catalog for which this reader is called.is
- The input stream that is to be read.- Throws:
java.io.IOException
- if the URL cannot be read.java.net.MalformedURLException
-
finalize
protected void finalize()
The destructor.Makes sure the catalog file is closed.
- Overrides:
finalize
in classjava.lang.Object
-
nextToken
protected java.lang.String nextToken() throws java.io.IOException, CatalogException
Return the next token in the catalog file.FYI: This code does not throw any sort of exception for a file that contains an n
- Returns:
- The Catalog file token from the input stream.
- Throws:
java.io.IOException
- If an error occurs reading from the stream.CatalogException
-
nextChar
protected int nextChar() throws java.io.IOException
Return the next logical character from the input stream.- Returns:
- The next (logical) character from the input stream. The character may be buffered from a previous lookahead.
- Throws:
java.io.IOException
- If an error occurs reading from the stream.
-
-