com.yahoo.io.reader.NamedReader Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of vespajlib Show documentation
Show all versions of vespajlib Show documentation
Library for use in Java components of Vespa. Shared code which do
not fit anywhere else.
// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.io.reader;
import com.yahoo.api.annotations.Beta;
import java.io.IOException;
import java.io.Reader;
import java.io.Writer;
import java.nio.CharBuffer;
import java.util.List;
/**
* A reader with a name. All reader methods are delegated to the wrapped reader.
*
* @author bratseth
*/
@Beta
public class NamedReader extends Reader {
private final String name;
private final Reader reader;
public NamedReader(String name, Reader reader) {
this.name = name;
this.reader = reader;
}
public String getName() { return name; }
public Reader getReader() { return reader; }
/** Returns the name */
@Override
public String toString() {
return name;
}
// The rest is reader method implementations which delegates to the wrapped reader
public static Reader nullReader() { return new NamedReader("nullReader", Reader.nullReader()); }
@Override
public int read(CharBuffer charBuffer) throws IOException { return reader.read(charBuffer); }
@Override
public int read() throws IOException { return reader.read(); }
@Override
public int read(char[] chars) throws IOException { return reader.read(chars); }
@Override
public int read(char[] chars, int i, int i1) throws IOException { return reader.read(chars,i,i1); }
@Override
public long skip(long l) throws IOException { return reader.skip(l); }
@Override
public boolean ready() throws IOException { return reader.ready(); }
@Override
public boolean markSupported() { return reader.markSupported(); }
@Override
public void mark(int i) throws IOException { reader.mark(i); }
@Override
public void reset() throws IOException { reader.reset(); }
@Override
public void close() throws IOException { reader.close(); }
@Override
public long transferTo(Writer out) throws IOException { return reader.transferTo(out); }
/** Convenience method for closing a list of readers. Does nothing if the given reader list is null. */
public static void closeAll(List readers) {
if (readers==null) return;
for (Reader reader : readers) {
try {
reader.close();
}
catch (IOException e) {
// Nothing to do about it
}
}
}
}