1 /*
2 * This software was designed and created by Jason Carroll.
3 * Copyright (c) 2002, 2003, 2004 Jason Carroll.
4 * The author can be reached at jcarroll@cowsultants.com
5 * ITracker website: http://www.cowsultants.com
6 * ITracker forums: http://www.cowsultants.com/phpBB/index.php
7 *
8 * This program is free software; you can redistribute it and/or modify
9 * it only under the terms of the GNU General Public License as published by
10 * the Free Software Foundation; either version 2 of the License, or
11 * (at your option) any later version.
12 *
13 * This program is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
17 */
18
19 package org.itracker.model;
20
21 /**
22 * Enumeration of Project, Component or Version statuses.
23 *
24 * @author johnny
25 */
26 public enum Status implements IntCodeEnum<Status> {
27
28
29 DELETED(-1),
30
31 ACTIVE(1),
32
33 VIEWABLE(2),
34
35 LOCKED(3);
36
37
38 private final Integer code;
39
40 private Status(Integer code) {
41 this.code = code;
42 }
43
44 public Integer getCode() {
45 return code;
46 }
47
48 public Status fromCode(Integer code) {
49 return Status.valueOf(code);
50 }
51
52 public static Status valueOf(Integer code) {
53 switch (code) {
54 case -1:
55 return DELETED;
56 case 1:
57 return ACTIVE;
58 case 2:
59 return VIEWABLE;
60 case 3:
61 return LOCKED;
62 default:
63 throw new IllegalArgumentException(
64 "Unknown enum code : " + code);
65 }
66 }
67
68 }