001package io.jstach.jstachio.output; 002 003import java.nio.charset.Charset; 004 005import io.jstach.jstachio.Output.EncodedOutput; 006 007/** 008 * An encoded output that forwards all calls to a delegate. 009 * 010 * @param <E> error throw on any append or write 011 */ 012public abstract class ForwardingEncodedOutput<E extends Exception> extends ForwardingOutput<E> 013 implements EncodedOutput<E> { 014 015 /** 016 * Do nothing constructor 017 */ 018 protected ForwardingEncodedOutput() { 019 super(); 020 } 021 022 @Override 023 public void write(byte[] bytes) throws E { 024 delegate().write(bytes); 025 } 026 027 @Override 028 public void write(byte[] bytes, int off, int len) throws E { 029 delegate().write(bytes, off, len); 030 } 031 032 @Override 033 public Charset charset() { 034 return delegate().charset(); 035 } 036 037 @Override 038 protected abstract EncodedOutput<E> delegate(); 039 040}