Java Doc for UCSReader.java in  » GIS » GeoServer » org » geoserver » ows » util » Java Source Code / Java DocumentationJava Source Code and Java Documentation

Java Source Code / Java Documentation
1. 6.0 JDK Core
2. 6.0 JDK Modules
3. 6.0 JDK Modules com.sun
4. 6.0 JDK Modules com.sun.java
5. 6.0 JDK Modules sun
6. 6.0 JDK Platform
7. Ajax
8. Apache Harmony Java SE
9. Aspect oriented
10. Authentication Authorization
11. Blogger System
12. Build
13. Byte Code
14. Cache
15. Chart
16. Chat
17. Code Analyzer
18. Collaboration
19. Content Management System
20. Database Client
21. Database DBMS
22. Database JDBC Connection Pool
23. Database ORM
24. Development
25. EJB Server geronimo
26. EJB Server GlassFish
27. EJB Server JBoss 4.2.1
28. EJB Server resin 3.1.5
29. ERP CRM Financial
30. ESB
31. Forum
32. GIS
33. Graphic Library
34. Groupware
35. HTML Parser
36. IDE
37. IDE Eclipse
38. IDE Netbeans
39. Installer
40. Internationalization Localization
41. Inversion of Control
42. Issue Tracking
43. J2EE
44. JBoss
45. JMS
46. JMX
47. Library
48. Mail Clients
49. Net
50. Parser
51. PDF
52. Portal
53. Profiler
54. Project Management
55. Report
56. RSS RDF
57. Rule Engine
58. Science
59. Scripting
60. Search Engine
61. Security
62. Sevlet Container
63. Source Control
64. Swing Library
65. Template Engine
66. Test Coverage
67. Testing
68. UML
69. Web Crawler
70. Web Framework
71. Web Mail
72. Web Server
73. Web Services
74. Web Services apache cxf 2.0.1
75. Web Services AXIS2
76. Wiki Engine
77. Workflow Engines
78. XML
79. XML UI
Java
Java Tutorial
Java Open Source
Jar File Download
Java Articles
Java Products
Java by API
Photoshop Tutorials
Maya Tutorials
Flash Tutorials
3ds-Max Tutorials
Illustrator Tutorials
GIMP Tutorials
C# / C Sharp
C# / CSharp Tutorial
C# / CSharp Open Source
ASP.Net
ASP.NET Tutorial
JavaScript DHTML
JavaScript Tutorial
JavaScript Reference
HTML / CSS
HTML CSS Reference
C / ANSI-C
C Tutorial
C++
C++ Tutorial
Ruby
PHP
Python
Python Tutorial
Python Open Source
SQL Server / T-SQL
SQL Server / T-SQL Tutorial
Oracle PL / SQL
Oracle PL/SQL Tutorial
PostgreSQL
SQL / MySQL
MySQL Tutorial
VB.Net
VB.Net Tutorial
Flash / Flex / ActionScript
VBA / Excel / Access / Word
XML
XML Tutorial
Microsoft Office PowerPoint 2007 Tutorial
Microsoft Office Excel 2007 Tutorial
Microsoft Office Word 2007 Tutorial
Java Source Code / Java Documentation » GIS » GeoServer » org.geoserver.ows.util 
Source Cross Reference  Class Diagram Java Document (Java Doc) 


java.lang.Object
   java.io.Reader
      org.geoserver.ows.util.UCSReader

UCSReader
public class UCSReader extends Reader (Code)
Reader for UCS-2 and UCS-4 encodings. (more precisely ISO-10646-UCS-(2|4) encodings). This variant is modified to handle supplementary Unicode code points correctly. Though this required a lot of new code and definitely reduced the perfomance comparing to original version. I tried my best to preserve exsiting code and comments whenever it was possible. I performed some basic tests, but not too thorough ones, so some bugs may still nest in the code. -AK
author:
   Neil Graham, IBM
version:
   $Id: UCSReader.java 6177 2007-02-19 10:11:27Z aaime $


Field Summary
final public static  intCHAR_BUFFER_INITIAL_SIZE
     Starting size of the internal char buffer.
final public static  intDEFAULT_BUFFER_SIZE
     Default byte buffer size (8192, larger than that of ASCIIReader since it's reasonable to surmise that the average UCS-4-encoded file should be 4 times as large as the average ASCII-encoded file).
final public static  intMAX_CODE_POINT
     The maximum value of a Unicode code point.
final public static  intMIN_CODE_POINT
     The minimum value of a Unicode code point.
final public static  intMIN_SUPPLEMENTARY_CODE_POINT
     The minimum value of a supplementary code point.
final public static  shortUCS2BE
    
final public static  shortUCS2LE
    
final public static  shortUCS4BE
    
final public static  shortUCS4LE
    
protected  byte[]fBuffer
     Byte buffer.
protected  char[]fCharBuf
     Stores aforeread or "excess" characters that may appear during read methods invocation due to the fact that one input UCS-4 supplementary character results in two output Java char`s - high surrogate and low surrogate code units. Because of that, if read() method encounters supplementary code point in the input stream, it returns UTF-16-encoded high surrogate code unit and stores low surrogate in buffer.
protected  intfCharCount
     Count of Java chars currently being stored in in the fCharBuf array.
protected  shortfEncoding
    
protected  InputStreamfInputStream
     Input stream.

Constructor Summary
public  UCSReader(InputStream inputStream, short encoding)
     Constructs an ISO-10646-UCS-(2|4) reader from the specified input stream using default buffer size.
public  UCSReader(InputStream inputStream, int size, short encoding)
     Constructs an ISO-10646-UCS-(2|4) reader from the source input stream using explicitly specified initial buffer size.

Method Summary
public  voidclose()
     Close the stream.
public  StringgetByteOrder()
     Returns byte order ("endianness") of the encoding currently in use by this character stream.
public  StringgetEncoding()
     Returns the encoding currently in use by this character stream. Encoding of this stream.
protected  booleanisSupplementaryCodePoint(int codePoint)
     Determines whether the specified character (Unicode code point) is in the supplementary character range.
public  voidmark(int readAheadLimit)
     Mark the present position in the stream.
public  booleanmarkSupported()
     Tell whether this stream supports the mark() operation.
public  intread()
     Read a single character.
public  intread(char[] ch, int offset, int length)
     Read characters into a portion of an array.
protected  intreadUCS2(char[] ch, int offset, int length)
     Read UCS-2 characters into a portion of an array.
public  booleanready()
     Tell whether this stream is ready to be read. True if the next read() is guaranteed not to block for input,false otherwise.
public  voidreset()
     Reset the stream.
public  longskip(long n)
     Skip characters.

Field Detail
CHAR_BUFFER_INITIAL_SIZE
final public static int CHAR_BUFFER_INITIAL_SIZE(Code)
Starting size of the internal char buffer. Internal char buffer is maintained to hold excess chars that may left from previous read operation when working with UCS-4 data (never used for UCS-2).



DEFAULT_BUFFER_SIZE
final public static int DEFAULT_BUFFER_SIZE(Code)
Default byte buffer size (8192, larger than that of ASCIIReader since it's reasonable to surmise that the average UCS-4-encoded file should be 4 times as large as the average ASCII-encoded file).



MAX_CODE_POINT
final public static int MAX_CODE_POINT(Code)
The maximum value of a Unicode code point.



MIN_CODE_POINT
final public static int MIN_CODE_POINT(Code)
The minimum value of a Unicode code point.



MIN_SUPPLEMENTARY_CODE_POINT
final public static int MIN_SUPPLEMENTARY_CODE_POINT(Code)
The minimum value of a supplementary code point.



UCS2BE
final public static short UCS2BE(Code)



UCS2LE
final public static short UCS2LE(Code)



UCS4BE
final public static short UCS4BE(Code)



UCS4LE
final public static short UCS4LE(Code)



fBuffer
protected byte[] fBuffer(Code)
Byte buffer.



fCharBuf
protected char[] fCharBuf(Code)
Stores aforeread or "excess" characters that may appear during read methods invocation due to the fact that one input UCS-4 supplementary character results in two output Java char`s - high surrogate and low surrogate code units. Because of that, if read() method encounters supplementary code point in the input stream, it returns UTF-16-encoded high surrogate code unit and stores low surrogate in buffer. When called next time, read() will return this low surrogate, instead of reading more bytes from the InputStream. Similarly if read(char[], int, int) is invoked to read, for example, 10 chars into specified buffer, and 4 of them turn out to be supplementary Unicode characters, each written as two chars, then we end up having 4 excess chars that we cannot immediately return or push back to the input stream. So we need to store them in the buffer awaiting further read invocations. Note that char buffer functions like a stack, i.e. chars and surrogate pairs are stored in reverse order.



fCharCount
protected int fCharCount(Code)
Count of Java chars currently being stored in in the fCharBuf array.



fEncoding
protected short fEncoding(Code)
what kind of data we're dealing with



fInputStream
protected InputStream fInputStream(Code)
Input stream.




Constructor Detail
UCSReader
public UCSReader(InputStream inputStream, short encoding)(Code)
Constructs an ISO-10646-UCS-(2|4) reader from the specified input stream using default buffer size. The Endianness and exact input encoding (UCS-2 or UCS-4) also should be known in advance.
Parameters:
  inputStream - input stream with UCS-2|4 encoded data
Parameters:
  encoding - One of UCS2LE, UCS2BE, UCS4LE or UCS4BE.



UCSReader
public UCSReader(InputStream inputStream, int size, short encoding)(Code)
Constructs an ISO-10646-UCS-(2|4) reader from the source input stream using explicitly specified initial buffer size. Endianness and exact input encoding (UCS-2 or UCS-4) also should be known in advance.
Parameters:
  inputStream - input stream with UCS-2|4 encoded data
Parameters:
  size - The initial buffer size. You better make surethis number is divisible by 4 if you plan toto read UCS-4 with this class.
Parameters:
  encoding - One of UCS2LE, UCS2BE, UCS4LE or UCS4BE




Method Detail
close
public void close() throws IOException(Code)
Close the stream. Once a stream has been closed, further read, ready, mark, or reset invocations will throw an IOException. Closing a previously-closed stream, however, has no effect.
exception:
  IOException - If an I/O error occurs



getByteOrder
public String getByteOrder()(Code)
Returns byte order ("endianness") of the encoding currently in use by this character stream. This is a string with two possible values: LITTLE_ENDIAN and BIG_ENDIAN. Maybe using a named constant is a better alternative, but I just don't like them. But feel free to change this behavior if you think that would be better. LITTLE_ENDIAN or BIG_ENDIAN dependingon byte order of current encoding of this stream.



getEncoding
public String getEncoding()(Code)
Returns the encoding currently in use by this character stream. Encoding of this stream. Either ISO-10646-UCS-2 orISO-10646-UCS-4. Problem is that this string doesn't indicatethe byte order of that encoding. What to do, then? UnlikeUTF-16 byte order cannot be made part of the encoding namein this case and still can be critical. Currently you canfind out the byte order by invoking getByteOrdermethod.



isSupplementaryCodePoint
protected boolean isSupplementaryCodePoint(int codePoint)(Code)
Determines whether the specified character (Unicode code point) is in the supplementary character range. The method call is equivalent to the expression:
 codePoint >= 0x10000 && codePoint <= 0x10ffff
 
Stolen from JDK 1.5 java.lang.Character class in order to provide JDK 1.4 compatibility.
Parameters:
  codePoint - the character (Unicode code point) to be tested true if the specified character is in the Unicodesupplementary character range; false otherwise.



mark
public void mark(int readAheadLimit) throws IOException(Code)
Mark the present position in the stream. Subsequent calls to reset will attempt to reposition the stream to this point. Not all character-input streams support the mark operation. This is one of them :) It relies on marking facilities of underlying byte stream.
Parameters:
  readAheadLimit - Limit on the number of characters that may beread while still preserving the mark. Afterreading this many characters, attempting toreset the stream may fail.
exception:
  IOException - If the stream does not supportmark, or if some other I/O erroroccurs



markSupported
public boolean markSupported()(Code)
Tell whether this stream supports the mark() operation.



read
public int read() throws IOException(Code)
Read a single character. This method will block until a character is available, an I/O error occurs, or the end of the stream is reached. If supplementary Unicode character is encountered in UCS-4 input, it will be encoded into UTF-16 surrogate pair according to RFC 2781. High surrogate code unit will be returned immediately, and low surrogate saved in the internal buffer to be read during next read() or read(char[], int, int) invocation. -AK Java 16-bit char value containing UTF-16 codeunit which may be either code point from Basic MultilingualPlane or one of the surrogate code units (high or low)of the pair representing supplementary Unicode character(one in 0x10000 - 0x10FFFF range) -AK
exception:
  IOException - when I/O error occurs



read
public int read(char[] ch, int offset, int length) throws IOException(Code)
Read characters into a portion of an array. This method will block until some input is available, an I/O error occurs, or the end of the stream is reached. I suspect that the whole stuff works awfully slow, so if you know for sure that your UCS-4 input does not contain any supplementary code points you probably should use original UCSReader class from Xerces team (org.apache.xerces.impl.io.UCSReader). -AK
Parameters:
  ch - Destination buffer
Parameters:
  offset - Offset at which to start storing characters
Parameters:
  length - Maximum number of characters to read The number of characters read, or -1 if theend of the stream has been reached. Note that this is nota number of UCS-4 characters read, butinstead number of UTF-16 code units. Thesetwo are equal only if there were no supplementary Unicodecode points among read chars.
exception:
  IOException - If an I/O error occurs



readUCS2
protected int readUCS2(char[] ch, int offset, int length) throws IOException(Code)
Read UCS-2 characters into a portion of an array. This method will block until some input is available, an I/O error occurs, or the end of the stream is reached.

In original UCSReader this code was part of read(char[], int, int) method, but I removed it from there to reduce complexity of the latter.


Parameters:
  ch - destination buffer
Parameters:
  offset - offset at which to start storing characters
Parameters:
  length - maximum number of characters to read The number of characters read, or -1if the end of the stream has been reached
exception:
  IOException - If an I/O error occurs



ready
public boolean ready() throws IOException(Code)
Tell whether this stream is ready to be read. True if the next read() is guaranteed not to block for input,false otherwise. Note that returning false does not guarantee that thenext read will block.
exception:
  IOException - If an I/O error occurs



reset
public void reset() throws IOException(Code)
Reset the stream. If the stream has been marked, then attempt to reposition it at the mark. If the stream has not been marked, then attempt to reset it in some way appropriate to the particular stream, for example by repositioning it to its starting point. This stream implementation does not support mark/reset by itself, it relies on underlying byte stream in this matter.
exception:
  IOException - If the stream has not been marked,or if the mark has been invalidated,or if the stream does not support reset(),or if some other I/O error occurs



skip
public long skip(long n) throws IOException(Code)
Skip characters. This method will block until some characters are available, an I/O error occurs, or the end of the stream is reached.
Parameters:
  n - The number of characters to skip The number of characters actually skipped
exception:
  IOException - If an I/O error occurs



Fields inherited from java.io.Reader
protected Object lock(Code)(Java Doc)

Methods inherited from java.io.Reader
abstract public void close() throws IOException(Code)(Java Doc)
public void mark(int readAheadLimit) throws IOException(Code)(Java Doc)
public boolean markSupported()(Code)(Java Doc)
public int read(java.nio.CharBuffer target) throws IOException(Code)(Java Doc)
public int read() throws IOException(Code)(Java Doc)
public int read(char cbuf) throws IOException(Code)(Java Doc)
abstract public int read(char cbuf, int off, int len) throws IOException(Code)(Java Doc)
public boolean ready() throws IOException(Code)(Java Doc)
public void reset() throws IOException(Code)(Java Doc)
public long skip(long n) throws IOException(Code)(Java Doc)

Methods inherited from java.lang.Object
native protected Object clone() throws CloneNotSupportedException(Code)(Java Doc)
public boolean equals(Object obj)(Code)(Java Doc)
protected void finalize() throws Throwable(Code)(Java Doc)
final native public Class getClass()(Code)(Java Doc)
native public int hashCode()(Code)(Java Doc)
final native public void notify()(Code)(Java Doc)
final native public void notifyAll()(Code)(Java Doc)
public String toString()(Code)(Java Doc)
final native public void wait(long timeout) throws InterruptedException(Code)(Java Doc)
final public void wait(long timeout, int nanos) throws InterruptedException(Code)(Java Doc)
final public void wait() throws InterruptedException(Code)(Java Doc)

www.java2java.com | Contact Us
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.