package com.revolsys.gis.postgresql.type; import java.io.IOException; import java.io.InputStream; public class StringByteInputStream extends InputStream { private final String buffer; private int index; public StringByteInputStream(final String buffer) { this.buffer = buffer; } private byte getHexPart() { final char c = this.buffer.charAt(this.index++); if (c >= '0' && c <= '9') { return (byte)(c - '0'); } else if (c >= 'A' && c <= 'F') { return (byte)(c - 'A' + 10); } else if (c >= 'a' && c <= 'f') { return (byte)(c - 'a' + 10); } else { throw new IllegalArgumentException("No valid Hex char " + c); } } @Override public int read() throws IOException { if (this.index < this.buffer.length() - 1) { final int high = getHexPart(); final int low = getHexPart(); return (high << 4) + low; } else { return -1; } } }