Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  package com.google.sitebricks.rendering.resource;
  
  import java.util.List;
  import java.util.Map;
 
 

Author(s):
Dhanji R. Prasanna (dhanji@gmail com)
 
   private final Map<StringResourceresources = new MapMaker().makeMap();
 
   private static final AtomicReference<Map<StringString>> mimes =
       new AtomicReference<Map<StringString>>();
 
   private static final String DEFAULT_MIME = "__defaultMimeType";
 
   public ClasspathResourcesService() {
     if (null == .get()) {
       final Properties properties = new Properties();
       try {
         properties.load(
             ClasspathResourcesService.class.getResourceAsStream("mimetypes.properties"));
       } catch (IOException e) {
         throw new ResourceLoadingException("Can't find mimetypes.properties"e);
       }
 
       //noinspection unchecked
       .compareAndSet(null, (Mapproperties);
     }
   }
 
   public void add(Class<?> clazzExport export) {
     .put(export.at(), new Resource(exportclazz));
   }
 
   public Respond serve(String uri) {
     final Resource resource = .get(uri);
 
     //nothing registered
     if (null == resource) {
       return null;
     }
 
     //load and render resource to responder
     return new StaticResourceRespond(resource);
   }
 
 
   static String mimeOf(String file) {
     final Map<StringStringmimeTypes = .get();
     for (Map.Entry<StringStringmime : mimeTypes.entrySet()) {
       if (file.matches(mime.getKey()))
         return mime.getValue();
     }
 
     //no match, use the default?
     return mimeTypes.get();
   }
 
   private static class Resource {
     private final Export export;
     private final Class<?> clazz;
     private final String mimeType;
 
     private Resource(Export exportClass<?> clazz) {
       this. = export;
       this. = clazz;
 
       this. = mimeOf(export.resource());
     }
 
     public String toString() {
       return new StringBuilder()
           .append("Resource {")
           .append("export=")
           .append()
           .append(", class=")
           .append().append('}')
 
           .toString();
     }
   }
 
  private static class StaticResourceRespond implements Respond {
    private final Resource resource;
    public StaticResourceRespond(Resource resource) {
      this. = resource;
    }
    public String getContentType() {
      return .;
    }
    @Override
    public String toString() {
      //load and render
      List list;
      try {
        if (null == stream)
          throw new ResourceLoadingException(
              "Couldn't find static resource (did you spell it right?) specified by: "
                  + );
        list = CharStreams.readLines(new InputStreamReader(stream));
      } catch (IOException e) {
        throw new ResourceLoadingException(
            "Error loading static resource specified by: " + e);
      }
      StringBuilder buffer = new StringBuilder();
      for (Object o : list) {
        buffer.append((Stringo);
      }
      return buffer.toString();
    }
    public void write(String text) {
      throw new UnsupportedOperationException("Static resource responders can't be written to");
    }
    public HtmlTagBuilder withHtml() {
      throw new UnsupportedOperationException("Static resource responders can't be written to");
    }
    public void write(char c) {
      throw new UnsupportedOperationException("Static resource responders can't be written to");
    }
    public void chew() {
      throw new UnsupportedOperationException("Static resource responders can't be written to");
    }
    public void writeToHead(String text) {
      throw new UnsupportedOperationException("Static resource responders can't be written to");
    }
    public void require(String requireString) {
      throw new UnsupportedOperationException("Static resource responders can't be written to");
    }
    public void redirect(String to) {
      throw new UnsupportedOperationException("Static resource responders can't be written to");
    }
    public String getRedirect() {
      return null;
    }
    public Renderable include(String argument) {
      return null;
    }
    public String getHead() {
      return null;
    }
    @Override
    public void clear() {
    }
    @Override public Object pageObject() {
      return null;
    }
  }
New to GrepCode? Check out our FAQ X