Coverage Report - org.webslinger.ext.types.image
 
Classes in this File Line Coverage Branch Coverage Complexity
image
0%
0/27
N/A
1.125
image$1
0%
0/8
0%
0/2
1.125
 
 1  
 package org.webslinger.ext.types;
 2  
 
 3  
 import java.awt.Rectangle;
 4  
 import java.io.IOException;
 5  
 import java.util.Map;
 6  
 import javax.servlet.ServletException;
 7  
 import javax.servlet.http.HttpServletRequest;
 8  
 import javax.servlet.http.HttpServletResponse;
 9  
 
 10  
 import org.apache.commons.vfs.FileObject;
 11  
 
 12  
 import org.webslinger.PathContext;
 13  
 import org.webslinger.TypeHandler;
 14  
 import org.webslinger.Webslinger;
 15  
 import org.webslinger.WebslingerServletContext;
 16  
 import org.webslinger.lang.ConcurrentCache;
 17  
 import org.webslinger.ext.image.CommonsVfsImageDescriptor;
 18  
 import org.webslinger.ext.image.ConstrainingTransformerFactory;
 19  
 import org.webslinger.ext.image.CroppingTransformerFactory;
 20  
 import org.webslinger.ext.image.ImageDescriptor;
 21  
 import org.webslinger.ext.image.ImageConvertingCache;
 22  
 import org.webslinger.ext.image.ImageConvertor;
 23  
 import org.webslinger.ext.image.ImageUtils;
 24  
 import org.webslinger.ext.image.PathContextImageDescriptor;
 25  
 import org.webslinger.servlet.Binary;
 26  
 import org.webslinger.util.TTLObject;
 27  
 
 28  0
 public class image extends TypeHandler {
 29  
     protected ImageConvertingCache previewCroppers;
 30  
     protected ImageConvertingCache croppers;
 31  
 
 32  
     public void init(WebslingerServletContext context, String type) throws IOException {
 33  0
         super.init(context, type);
 34  0
         FileObject root = context.getContainer().getRoot();
 35  0
         ImageConvertor imageConvertor = new ImageConvertor(root.resolveFile("/Var/Image/"));
 36  0
         imageConvertor.getFactories().add(new CroppingTransformerFactory());
 37  0
         croppers = new ImageConvertingCache(image.class, "cropper", null, imageConvertor);
 38  0
         ImageConvertor imagePreviewConvertor = new ImageConvertor(root.resolveFile("/Var/ImagePreview/"));
 39  0
         imagePreviewConvertor.getFactories().add(new CroppingTransformerFactory(true));
 40  0
         previewCroppers = new ImageConvertingCache(image.class, "previewCroppers", null, imagePreviewConvertor);
 41  0
     }
 42  
 
 43  
     public Object run(Webslinger webslinger) throws IOException, ServletException {
 44  0
         return run(webslinger.getPathContext(), webslinger.getRequest(), webslinger.getResponse());
 45  
     }
 46  
 
 47  
     public Object run(PathContext pc, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
 48  0
         run(new PathContextImageDescriptor(pc), request, response);
 49  0
         return null;
 50  
     }
 51  
 
 52  
     public void run(ImageDescriptor image, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
 53  0
         run(image, request, response, crop(image));
 54  0
     }
 55  
 
 56  
     public FileObject crop(FileObject file) throws IOException {
 57  0
         return crop(new CommonsVfsImageDescriptor(file));
 58  
     }
 59  
 
 60  
     public FileObject crop(PathContext pc) throws IOException {
 61  0
         return crop(new PathContextImageDescriptor(pc));
 62  
     }
 63  
 
 64  
     public FileObject crop(ImageDescriptor image) throws IOException {
 65  0
         return croppers.get(image).getObject();
 66  
     }
 67  
 
 68  
     public Object runPreview(PathContext pc, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
 69  0
         runPreview(new PathContextImageDescriptor(pc), request, response);
 70  0
         return null;
 71  
     }
 72  
 
 73  
     public void runPreview(ImageDescriptor image, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
 74  0
         run(image, request, response, preview(image));
 75  0
     }
 76  
 
 77  
     public FileObject preview(FileObject file) throws IOException {
 78  0
         return preview(new CommonsVfsImageDescriptor(file));
 79  
     }
 80  
 
 81  
     public FileObject preview(PathContext pc) throws IOException {
 82  0
         return preview(new PathContextImageDescriptor(pc));
 83  
     }
 84  
 
 85  
     public FileObject preview(ImageDescriptor image) throws IOException {
 86  0
         return previewCroppers.get(image).getObject();
 87  
     }
 88  
 
 89  
     public static void run(final ImageDescriptor image, HttpServletRequest request, HttpServletResponse response, final FileObject dest) throws IOException, ServletException {
 90  0
         Binary.run(
 91  0
             new Binary.FileContent() {
 92  
                 public FileObject getFile() throws IOException {
 93  0
                     return dest;
 94  
                 }
 95  
 
 96  
                 public String getContentType() throws IOException {
 97  0
                     String contentType = super.getContentType();
 98  0
                     if (contentType == null) contentType = image.getContentType();
 99  0
                     return contentType;
 100  
                 }
 101  
 
 102  
                 public String getContentEncoding() throws IOException {
 103  0
                     String contentEncoding = super.getContentEncoding();
 104  0
                     if (contentEncoding == null) contentEncoding = image.getContentEncoding();
 105  0
                     return contentEncoding;
 106  
                 }
 107  
             },
 108  
             request,
 109  
             response
 110  
         );
 111  0
     }
 112  
 }