view src/goodjava/webserver/Status.java @ 1643:8d751af51b9d

fix not_found_hander
author Franklin Schmidt <fschmidt@gmail.com>
date Sun, 02 Jan 2022 00:42:58 -0700
parents f7e3adae4907
children
line wrap: on
line source

package goodjava.webserver;

import java.util.Map;
import java.util.HashMap;
import goodjava.logging.Logger;
import goodjava.logging.LoggerFactory;


public class Status {
	private static final Logger logger = LoggerFactory.getLogger(Status.class);

	public final int code;
	public final String reason;

	public Status(int code,String reason) {
		this.code = code;
		this.reason = reason;
	}

	private static final Map<Integer,Status> map = new HashMap<Integer,Status>();

	protected static Status newStatus(int code,String reason) {
		Status status = new Status(code,reason);
		map.put(code,status);
		return status;
	}

	public static Status getStatus(int code) {
		Status status = map.get(code);
		if( status == null ) {
			logger.warn("missing status "+code);
			status = new Status(code,"");
		}
		return status;
	}

	public static final Status OK = newStatus(200,"OK");
	public static final Status MOVED_PERMANENTLY = newStatus(301,"Moved Permanently");
	public static final Status FOUND = newStatus(302,"Found");
	public static final Status NOT_MODIFIED = newStatus(304,"Not Modified");
	public static final Status BAD_REQUEST = newStatus(400,"Bad Request");
	public static final Status UNAUTHORIZED = newStatus(401,"Unauthorized");
	public static final Status NOT_FOUND = newStatus(404,"Not Found");
	public static final Status INTERNAL_SERVER_ERROR = newStatus(500,"Internal Server Error");
}