Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * ObjectosComunsYamlModel.java criado em 04/09/2012
   * 
   * Propriedade de Objectos Fábrica de Software LTDA.
   * Reprodução parcial ou total proibida.
   */
  package br.com.objectos.way.etc;
  
  import java.io.File;
 
 
 

Author(s):
marcio.endo@objectos.com.br (Marcio Endo)
 
 public abstract class AbstractEtcModule extends AbstractModule {
 
   private MapBinder<EtcKeyEtcmodelBinder;
 
   @Override
   protected final void configure() {
      = MapBinder.newMapBinder(binder(), EtcKey.classEtc.class);
 
     bind(Yaml.class).toProvider(YamlProvider.class);
 
     configureEtc();
   }
 
   protected abstract void configureEtc();
 
   protected <T> EtcBuilder<T> etc(Class<T> config) {
     return new Builder<T>(config);
   }
 
   protected interface EtcBuilder<T> {
 
     interface LoaderBuilder<T> {
 
       void loadWith(Class<? extends EtcLoader<T>> loader);
 
       void loadWith(EtcLoader<T> instance);
 
     }
 
     LoaderBuilder<T> at(File file);
 
     LoaderBuilder<T> atDir(Directory dir);
 
   }
 
   private class Builder<T> implements
       EtcBuilder<T>,
       EtcBuilder.LoaderBuilder<T> {
 
     private final Class<T> type;
 
     private File file;
 
     public Builder(Class<T> type) {
       this. = Preconditions.checkNotNull(type);
     }
 
     @Override
     public LoaderBuilder<T> at(File file) {
       this. = file;
       return this;
     }
 
     @Override
     public LoaderBuilder<T> atDir(Directory dir) {
       String typeName = .getSimpleName();
       String name = String.format("%s.yaml"typeName.toLowerCase());
       this. = dir.fileAt(name);
       return this;
     }
 
     @Override
     public void loadWith(Class<? extends EtcLoader<T>> loader) {
       Preconditions.checkNotNull(loader);
       EtcLoaderWrapper<T> wrapper = EtcLoaderWrapper.forType(loader);
       Etc etc = new Etc(wrapper);
       .addBinding(new EtcKey()).toInstance(etc);
     }
 
     @Override
     public void loadWith(EtcLoader<T> loader) {
       Preconditions.checkNotNull(loader);
       EtcLoaderWrapper<T> wrapper = EtcLoaderWrapper.forInstance(loader);
       Etc etc = new Etc(wrapper);
       .addBinding(new EtcKey()).toInstance(etc);
     }
 
   }
New to GrepCode? Check out our FAQ X