comparison src/luan/webserver/Status.java @ 1155:4100304340bc

minor
author Franklin Schmidt <fschmidt@gmail.com>
date Sun, 04 Feb 2018 20:53:07 -0700
parents c123ee15f99b
children 4beabb087be6
comparison
equal deleted inserted replaced
1154:bbad9a21277c 1155:4100304340bc
1 package luan.webserver; 1 package luan.webserver;
2
3 import java.util.Map;
4 import java.util.HashMap;
5 import org.slf4j.Logger;
6 import org.slf4j.LoggerFactory;
2 7
3 8
4 public class Status { 9 public class Status {
10 private static final Logger logger = LoggerFactory.getLogger(Status.class);
11
5 public final int code; 12 public final int code;
6 public final String reason; 13 public final String reason;
7 14
8 public Status(int code,String reason) { 15 public Status(int code,String reason) {
9 this.code = code; 16 this.code = code;
10 this.reason = reason; 17 this.reason = reason;
11 } 18 }
12 19
13 public static final Status OK = new Status(200,"OK"); 20 private static final Map<Integer,Status> map = new HashMap<Integer,Status>();
14 public static final Status NOT_FOUND = new Status(404,"Not Found"); 21
15 public static final Status INTERNAL_SERVER_ERROR = new Status(500,"Internal Server Error"); 22 protected static Status newStatus(int code,String reason) {
23 Status status = new Status(code,reason);
24 map.put(code,status);
25 return status;
26 }
27
28 public static Status getStatus(int code) {
29 Status status = map.get(code);
30 if( status == null ) {
31 logger.warn("missing status "+code);
32 status = new Status(code,"");
33 }
34 return status;
35 }
36
37 public static final Status OK = newStatus(200,"OK");
38 public static final Status MOVED_PERMANENTLY = newStatus(301,"Moved Permanently");
39 public static final Status NOT_FOUND = newStatus(404,"Not Found");
40 public static final Status INTERNAL_SERVER_ERROR = newStatus(500,"Internal Server Error");
16 } 41 }