package org.wikiwebserver.handler.http.example;

import org.wikiwebserver.handler.http.HTTPHandler;
import org.wikiwebserver.handler.http.interfaces.HTTPConfig;
import org.wikiwebserver.handler.http.interfaces.ObjectFinder;

public class ExampleHTTPConfig extends HTTPConfig {

    public ObjectFinder getObjectFinder() {
        return objectFinder;
    }
    
    private ObjectFinder objectFinder = new ObjectFinder() {
        public Object findObject(HTTPHandler conn) {
            
            String url = conn.getRequest().getUrl();
            
            if (url.equals("/dynamic")) {
                return new ExampleHTTPResponder();
            }
            if (url.equals("/cached")) {
                return new ExampleCacheableHTTPResponse();
            }
            if (url.equals("/small")) {
                return smallResponse;
            }  
            if (url.equals("/mid")) {
                return midResponse;
            }               
            if (url.equals("/large")) {
                return largeResponse;
            }               
            
            return "/cached, /dynamic, /small or /large";
        }
    }; 
    
    private static final byte[] largeResponse = new byte[1 * 1024 * 1024];
    private static final byte[] midResponse = new byte[1 * 1024];
    private static final String smallResponse = "small";
}

