1 //
2 // ========================================================================
3 // Copyright (c) 1995-2013 Mort Bay Consulting Pty. Ltd.
4 // ------------------------------------------------------------------------
5 // All rights reserved. This program and the accompanying materials
6 // are made available under the terms of the Eclipse Public License v1.0
7 // and Apache License v2.0 which accompanies this distribution.
8 //
9 // The Eclipse Public License is available at
10 // http://www.eclipse.org/legal/epl-v10.html
11 //
12 // The Apache License v2.0 is available at
13 // http://www.opensource.org/licenses/apache2.0.php
14 //
15 // You may elect to redistribute this code under either of these licenses.
16 // ========================================================================
17 //
18
19 package org.eclipse.jetty.spdy.api;
20
21 import java.util.HashMap;
22 import java.util.Map;
23
24 /**
25 * <p>An enumeration of session statuses.</p>
26 */
27 public enum SessionStatus
28 {
29 /**
30 * <p>The session status indicating no errors</p>
31 */
32 OK(0),
33 /**
34 * <p>The session status indicating a protocol error</p>
35 */
36 PROTOCOL_ERROR(1);
37
38 /**
39 * @param code the session status code
40 * @return a {@link SessionStatus} from the given code,
41 * or null if no status exists
42 */
43 public static SessionStatus from(int code)
44 {
45 return Codes.codes.get(code);
46 }
47
48 private final int code;
49
50 private SessionStatus(int code)
51 {
52 this.code = code;
53 Codes.codes.put(code, this);
54 }
55
56 /**
57 * @return the code of this {@link SessionStatus}
58 */
59 public int getCode()
60 {
61 return code;
62 }
63
64 private static class Codes
65 {
66 private static final Map<Integer, SessionStatus> codes = new HashMap<>();
67 }
68 }