package org.wikiwebserver.handler.http.interfaces;

import java.util.HashMap;
import java.util.Map;
import java.util.Random;

import org.wikiwebserver.core.interfaces.HandlerConfiguration;
import org.wikiwebserver.handler.http.HTTPException;
import org.wikiwebserver.handler.http.interfaces.HTTPMonitor;
import org.wikiwebserver.handler.http.interfaces.HTTPResponder;
import org.wikiwebserver.handler.http.interfaces.ObjectFinder;
import org.wikiwebserver.handler.http.interfaces.SessionFinder;

public class HTTPConfig implements HandlerConfiguration {

    public SessionFinder getSessionFinder() {
        return null;
    }
    
    public ObjectFinder getObjectFinder() {
        return null;
    }
    
    public HTTPMonitor getHTTPMonitor() {
        return null;
    }
    
    public HTTPResponder getHTTPErrorResponder(HTTPException ex) {
        return null;
    }

    public String newIdentity(String type) {
        return String.valueOf(random.nextInt(Integer.MAX_VALUE)); 
    }
    
    public String staticIdentity(String type) {
        synchronized (staticIds) {
            String id = staticIds.get(type);
            if (id != null) return id;
            id = newIdentity(type);
            staticIds.put(type, id);
            return id;
        }
    }   
    
    private static final Random random = new Random();
    private static final Map<String, String> staticIds = new HashMap<String, String>();
}

