Clazz.load(["java.io.Reader"], "java.io.CharArrayReader", null, function(){
var c$ = Clazz.decorateAsClass(function(){
this.buf = null;
this.pos = 0;
this.markedPos = -1;
this.count = 0;
Clazz.instantialize(this, arguments);}, java.io, "CharArrayReader", java.io.Reader);
Clazz.makeConstructor(c$, 
function(buf){
Clazz.superConstructor(this, java.io.CharArrayReader, [buf]);
this.buf = buf;
this.count = buf.length;
}, "~A");
Clazz.makeConstructor(c$, 
function(buf, offset, length){
Clazz.superConstructor(this, java.io.CharArrayReader, [buf]);
if (0 <= offset && offset <= buf.length && length >= 0) {
this.buf = buf;
this.pos = offset;
this.count = this.pos + length < buf.length ? length : buf.length;
} else {
throw  new IllegalArgumentException();
}}, "~A,~N,~N");
Clazz.overrideMethod(c$, "close", 
function(){
{
if (this.isOpen()) {
this.buf = null;
}}});
Clazz.defineMethod(c$, "isOpen", 
function(){
return this.buf != null;
});
Clazz.overrideMethod(c$, "mark", 
function(readLimit){
{
if (this.isOpen()) {
this.markedPos = this.pos;
} else {
throw  new java.io.IOException(("K0060"));
}}}, "~N");
Clazz.overrideMethod(c$, "markSupported", 
function(){
return true;
});
Clazz.defineMethod(c$, "read", 
function(){
{
if (this.isOpen()) {
if (this.pos != this.count) {
return this.buf[this.pos++];
}return -1;
}throw  new java.io.IOException(("K0060"));
}});
Clazz.defineMethod(c$, "read", 
function(buffer, offset, len){
if (0 <= offset && offset <= buffer.length && 0 <= len && len <= buffer.length - offset) {
{
if (this.isOpen()) {
if (this.pos < this.count) {
var bytesRead = this.pos + len > this.count ? this.count - this.pos : len;
System.arraycopy(this.buf, this.pos, buffer, offset, bytesRead);
this.pos += bytesRead;
return bytesRead;
}return -1;
}throw  new java.io.IOException(("K0060"));
}}throw  new ArrayIndexOutOfBoundsException();
}, "~A,~N,~N");
Clazz.overrideMethod(c$, "ready", 
function(){
{
if (this.isOpen()) {
return this.pos != this.count;
}throw  new java.io.IOException(("K0060"));
}});
Clazz.overrideMethod(c$, "reset", 
function(){
{
if (this.isOpen()) {
this.pos = this.markedPos != -1 ? this.markedPos : 0;
} else {
throw  new java.io.IOException(("K0060"));
}}});
Clazz.overrideMethod(c$, "skip", 
function(n){
{
if (this.isOpen()) {
if (n <= 0) {
return 0;
}var skipped = 0;
if (n < this.count - this.pos) {
this.pos = this.pos + n;
skipped = n;
} else {
skipped = this.count - this.pos;
this.pos = this.count;
}return skipped;
}throw  new java.io.IOException(("K0060"));
}}, "~N");
});
;//5.0.1-v7 Mon May 12 23:42:45 CDT 2025
