001package io.jstach.jstachio.output; 002 003import io.jstach.jstachio.Output; 004 005/** 006 * An encoded output that forwards all calls to a delegate. 007 * 008 * @param <E> error throw on any append or write 009 */ 010public abstract class ForwardingOutput<E extends Exception> implements Output<E> { 011 012 /** 013 * Do nothing constructor 014 */ 015 protected ForwardingOutput() { 016 } 017 018 /** 019 * The output to forward to. 020 * @return output to forward to. 021 */ 022 protected abstract Output<E> delegate(); 023 024 @Override 025 public void append(CharSequence s) throws E { 026 delegate().append(s); 027 } 028 029 @Override 030 public void append(short s) throws E { 031 delegate().append(s); 032 } 033 034 @Override 035 public void append(int i) throws E { 036 delegate().append(i); 037 } 038 039 @Override 040 public void append(long l) throws E { 041 delegate().append(l); 042 } 043 044 @Override 045 public void append(double d) throws E { 046 delegate().append(d); 047 } 048 049 @Override 050 public void append(boolean b) throws E { 051 delegate().append(b); 052 } 053 054 @Override 055 public Appendable toAppendable() { 056 return delegate().toAppendable(); 057 } 058 059 @Override 060 public void append(char c) throws E { 061 delegate().append(c); 062 } 063 064 @Override 065 public void append(String s) throws E { 066 delegate().append(s); 067 } 068 069 @Override 070 public void append(CharSequence csq, int start, int end) throws E { 071 delegate().append(csq, start, end); 072 } 073 074}