CSV解析準備-1

1年前に考えたコードを整理しようと思った。
ここで重要なのは、bindInterceptorの使い方である。
import com.google.inject.Binder;
import com.google.inject.Guice;
import com.google.inject.Injector;
import com.google.inject.Module;
import com.google.inject.matcher.Matchers;

public final class CsvparseBuilder{
   private CsvparseBuilder(){}
   
   /**
    * Csvparserインスタンス生成.
    * @param csvpCls Csvparser を実装したClass変数、Class<? extends Csvparser>
    * @return Csvparserインスタンス
    */
   public static Csvparser create(Class<? extends Csvparser> csvpCls){
      Injector injector = Guice.createInjector(new _Module(csvpCls));
      return injector.getInstance(csvpCls);
   }
   // Google guice バインド定義
   static class _Module implements Module{
      private Class<? extends Csvparser> csvpCls;
      protected _Module(Class<? extends Csvparser> csvpCls){
         this.csvpCls = csvpCls;
      }
      /* (非 Javadoc)
       * @see com.google.inject.Module#configure(com.google.inject.Binder)
       */
      public void configure(Binder binder){
         binder.bindInterceptor(Matchers.inPackage(this.csvpCls.getPackage())
                               ,InterceptMatcher.annotatedWith(Intercept.class,Csvparser.CSV_PARSE)
                               ,new CsvparseInterceptor(this.csvpCls));

      }
   }
}
=================
protected void bindInterceptor(Matcher<? super Class<?>> classMatcher, Matcher<? super Method> methodMatcher, MethodInterceptor... interceptors)