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}