Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  package com.google.sitebricks;
  
  import java.util.List;
  import java.util.Locale;
  import java.util.Map;
 import java.util.Set;
 

Author(s):
dhanji@gmail.com (Dhanji R. Prasanna)
 
 public class SitebricksModule extends AbstractModule implements PageBinder {
   private boolean enableServletSupport = true;
 
   protected void enableServletSupport(boolean bindServlets) {
     this. = bindServlets;
   }
 
   // Configure defaults via this contructor.
   public SitebricksModule() {
     // By default these are the method annotations we dispatch against.
     // They can be overridden with custom annotation types.
     .put("get"Get.class);
     .put("post"Post.class);
     .put("put"Put.class);
     .put("patch"Patch.class);
     .put("delete"Delete.class);
     .put("head"Head.class);
     .put("trace"Trace.class);
   }
 
   @Override
   protected final void configure() {
 
     // Re-route all requests through sitebricks.
     install(servletModule());
     if ()
 
     // negotiations stuff (make sure we clean this up).
     negotiate("Accept").with(Accept.class);
 
     //TODO: yes this is not so nice, but will keep on trying to localize the converter code. jvz.
      = Multibinder.newSetBinder(binder(), Converter.class);
 
     // TODO remove when more of sitebricks internals is guiced
 
     // Call down to the implementation.
 
     // These need to be registered after configureSitebricks because contributions made to the Multibinder
     // must be allowed to register before all the defaults are registered. In the acceptance tests where the
     // date format is non-default it tests will fail if the Multibinder is created and the default converters
     // registered immediately afterward. jvz.
     /* converters = */ConverterUtils.createConverterMultibinder();
 
     //insert core widgets set
     .add(0, CaseWidget.class.getPackage());
 
     bind(new TypeLiteral<List<Package>>() {})
        .annotatedWith(Bricks.class)
        .toInstance();
    bind(new TypeLiteral<List<LinkingBinder>>() {})
        .annotatedWith(Bricks.class)
        .toInstance();
    // These are the HTTP methods that we listen for.
    bind(new TypeLiteral<Map<StringClass<? extends Annotation>>>() {})
        .annotatedWith(Bricks.class)
        .toInstance();
    // These are Content negotiation annotations.
    bind(new TypeLiteral<Map<StringClass<? extends Annotation>>>() {})
        .annotatedWith(Negotiation.class)
        .toInstance();
    Localizer.localizeAll(binder(), );
  }
  protected void configureTemplateSystem() {
    //
    // Map of all the implementations keyed by type they can handle 
    //
    ImmutableMap.Builder<StringClass<? extends TemplateCompiler>> builder = ImmutableMap.builder();
    builder.put("html"HtmlTemplateCompiler.class);
    builder.put("xhtml"HtmlTemplateCompiler.class);
    builder.put("flat"FlatTemplateCompiler.class);
    builder.put("mvel"MvelTemplateCompiler.class);
    builder.put("fml"FreemarkerTemplateCompiler.class);
    builder.put("jsp"JspTemplateCompiler.class);
    Map<StringClass<? extends TemplateCompiler>> map = builder.build();
    bind(new TypeLiteral<Map<StringClass<? extends TemplateCompiler>>>() {}).toInstance(map);
  }
  protected void configureTemplateCompilers(ImmutableMap.Builder<StringClass<? extends TemplateCompiler>> compilers) {
    // Override to include custom template compilers:
    //  compilers.put("mustache", MustacheTemplateCompiler.class);
    //  Sitebricks obtains the provided compiler class via Guice.
  }

  
Optionally supply javax.servlet.Servlet and/or javax.servlet.Filter implementations to Guice Servlet. See SitebricksServletModule for usage examples.

Returns:
An instance of SitebricksServletModule. Implementing classes must return a non-null value.
See also:
SitebricksServletModule
    return new SitebricksServletModule();
  }
  protected void configureSitebricks() {
  }
  // Bindings.
  private final List<LinkingBinderbindings = Lists.newArrayList();
  private final List<Packagepackages = Lists.newArrayList();
  private final Map<StringClass<? extends Annotation>> methods = Maps.newHashMap();
  private final Map<StringClass<? extends Annotation>> negotiations = Maps.newHashMap();
  private final Set<Localizer.Localizationlocalizations = Sets.newHashSet();
  public final ShowBinder at(String uri) {
    LinkingBinder binding = new LinkingBinder(uri);
    .add(binding);
    return binding;
  }
  public final EmbedAsBinder embed(Class<?> clazz) {
    LinkingBinder binding = new LinkingBinder(clazz);
    .add(binding);
    return binding;
  }
  public final void bindMethod(String methodClass<? extends Annotationannotation) {
    Strings.nonEmpty(method"The REST method must be a valid non-empty string");
    Preconditions.checkArgument(null != annotation);
    String methodNormal = method.toLowerCase();
    .put(methodNormalannotation);
  }
  public NegotiateWithBinder negotiate(final String header) {
    Strings.nonEmpty(header"invalid request header string for negotiation.");
    return new NegotiateWithBinder() {
      public void with(Class<? extends Annotationann) {
        Preconditions.checkArgument(null != ann);
        .put(headerann);
      }
    };
  }
  public LocalizationBinder localize(final Class<?> iface) {
    Preconditions.checkArgument(iface.isInterface(), "localize() accepts an interface type only");
    .add(Localizer.defaultLocalizationFor(iface));
    return new LocalizationBinder() {
      public void using(Locale localeMap<StringStringmessages) {
        .addnew Localizer.Localization(ifacelocalemessages));
      }
      public void using(Locale localeProperties properties) {
        Preconditions.checkArgument(null != properties"Must provide a non-null resource bundle");
        // A Properties object is always of type string/string
        @SuppressWarnings({ "unchecked""rawtypes" })
        Map<StringStringmessages = (Mapproperties;
        .add(new Localizer.Localization(ifacelocalemessages));
      }
      public void using(Locale localeResourceBundle bundle) {
        Preconditions.checkArgument(null != bundle"Must provide a non-null resource bundle");
        Map<StringStringmessages = Maps.newHashMap();
        Enumeration<Stringkeys = bundle.getKeys();
        while (keys.hasMoreElements()) {
          String key = keys.nextElement();
          messages.put(keybundle.getString(key));
        }
        .add(new Localizer.Localization(ifacelocalemessages));
      }
      public void usingDefault() {
        .add(Localizer.defaultLocalizationFor(iface));
      }
    };
  }
  protected final void scan(Package pack) {
    Preconditions.checkArgument(null != pack"Package parameter to scan() cannot be null");
    .add(pack);
  }
  static enum BindingKind {
    EMBEDDED, PAGE, SERVICE, STATIC_RESOURCE, ACTION
  }
    String embedAs;
    final String uri;
    Class<?> pageClass;
    private String resource;
    private boolean asEagerSingleton;
    private Class<? extends AnnotationscopeAnnotation;
    private Scope scope;
    public LinkingBinder(String uri) {
      this. = uri;
      this. = null;
      this. = .;
    }
    public LinkingBinder(Class<?> pageClass) {
      this. = pageClass;
      this. = null;
      this. = .;
    }
    Export getResource() {
      return new Export() {
        public String at() {
          return ;
        }
        public String resource() {
          return ;
        }
        public Class<? extends AnnotationannotationType() {
          return Export.class;
        }
      };
    }
    public ScopedBindingBuilder show(Class<?> clazz) {
      Preconditions.checkArgument(!clazz.isAnnotationPresent(Service.class),
          "Cannot show() a headless web service. Did you mean to call serve() instead?");
      this. = clazz;
      this. = .;
      return this;
    }
    public ScopedBindingBuilder serve(Class<?> clazz) {
      this. = clazz;
      this. = .;
      return this;
    }
    public void export(String glob) {
       = glob;
    }
    public ActionBinder perform(Action action) {
      this. = .;
      ActionDescriptor ad = new ActionDescriptor(actionthis);
      .add(ad);
      return ad;
    }
    public ActionBinder perform(Class<? extends Actionaction) {
      this. = .;
      ActionDescriptor ad = new ActionDescriptor(Key.get(action), this);
      .add(ad);
      return ad;
    }
    public ActionBinder perform(Key<? extends Actionaction) {
      this. = .;
      ActionDescriptor ad = new ActionDescriptor(actionthis);
      .add(ad);
      return ad;
    }
    public ScopedBindingBuilder as(String annotation) {
      this. = annotation;
      return this;
    }
    public void in(Class<? extends AnnotationscopeAnnotation) {
      Preconditions.checkArgument(null == );
      Preconditions.checkArgument(!);
      this. = scopeAnnotation;
    }
    public void in(Scope scope) {
      Preconditions.checkArgument(null == );
      Preconditions.checkArgument(!);
      this. = scope;
    }
    public void asEagerSingleton() {
      Preconditions.checkArgument(null == );
      Preconditions.checkArgument(null == );
      this. = true;
    }
  }
  //
  // Converters
  //
  @SuppressWarnings("rawtypes")
  public final void converter(Converter<?, ?> converter)    {
    Preconditions.checkArgument(null != converter"Type converters cannot be null");
    .addBinding().toInstance(converter);
  }
  public final void converter(Class<? extends Converter<?, ?>> clazz) {
    .addBinding().to(clazz);
  }
New to GrepCode? Check out our FAQ X