File Source: state.java
1 /*
2 * Copyright (c) 2003-2006, Simon Brown
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are met:
7 *
8 * - Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer.
10 *
11 * - Redistributions in binary form must reproduce the above copyright
12 * notice, this list of conditions and the following disclaimer in
13 * the documentation and/or other materials provided with the
14 * distribution.
15 *
16 * - Neither the name of Pebble nor the names of its contributors may
17 * be used to endorse or promote products derived from this software
18 * without specific prior written permission.
19 *
20 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
23 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
24 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
25 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
26 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
27 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
28 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
29 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
30 * POSSIBILITY OF SUCH DAMAGE.
31 */
32 package net.sourceforge.pebble.domain;
33
34 import java.io.Serializable;
35
36 /**
37 * Represents a state.
38 *
39 * @author Simon Brown
40 */
41 public class State implements Serializable {
42
/*
P/P * Method: net.sourceforge.pebble.domain.State__static_init
*
* Postconditions:
* APPROVED == &new State(State__static_init#1)
* PENDING == &new State(State__static_init#3)
* PUBLISHED == &new State(State__static_init#5)
* REJECTED == &new State(State__static_init#2)
* UNPUBLISHED == &new State(State__static_init#4)
* new State(State__static_init#1) num objects == 1
* new State(State__static_init#2) num objects == 1
* new State(State__static_init#3) num objects == 1
* new State(State__static_init#4) num objects == 1
* new State(State__static_init#5) num objects == 1
* ...
*/
43 public static final State APPROVED = new State("approved");
44 public static final State REJECTED = new State("rejected");
45 public static final State PENDING = new State("pending");
46
47 public static final State UNPUBLISHED = new State("unpublished");
48 public static final State PUBLISHED = new State("published");
49
50 public static State getState(String name) {
/*
P/P * Method: State getState(String)
*
* Postconditions:
* return_value in Addr_Set{null,&new State(State__static_init#1),&new State(State__static_init#2),&new State(State__static_init#3),&new State(State__static_init#4),&new State(State__static_init#5)}
*
* Test Vectors:
* name: Inverse{null}, Addr_Set{null}
* java.lang.String:equals(...)@53: {0}, {1}
* java.lang.String:equals(...)@55: {0}, {1}
* java.lang.String:equals(...)@57: {0}, {1}
* java.lang.String:equals(...)@59: {0}, {1}
* java.lang.String:equals(...)@61: {0}, {1}
*/
51 if (name == null) {
52 return null;
53 } else if (name.equals("approved")) {
54 return APPROVED;
55 } else if (name.equals("rejected")) {
56 return REJECTED;
57 } else if (name.equals("pending")) {
58 return PENDING;
59 } else if (name.equals("unpublished")) {
60 return UNPUBLISHED;
61 } else if (name.equals("published")) {
62 return PUBLISHED;
63 } else {
64 return null;
65 }
66 }
67
68 /** the name of the state */
69 private String name;
70
71 /**
72 * Creates a new instance.
73 *
74 * @param name the name of the state
75 */
/*
P/P * Method: void net.sourceforge.pebble.domain.State(String)
*
* Postconditions:
* this.name == name
* init'ed(this.name)
*/
76 private State(String name) {
77 this.name = name;
78 }
79
80 /**
81 * Gets the name of this state.
82 *
83 * @return the name as a String
84 */
85 public String getName() {
/*
P/P * Method: String getName()
*
* Preconditions:
* init'ed(this.name)
*
* Postconditions:
* return_value == this.name
* init'ed(return_value)
*/
86 return name;
87 }
88
89 /**
90 * Gets the hashcode of this object.
91 *
92 * @return the hashcode as an int
93 */
94 public int hashCode() {
/*
P/P * Method: int hashCode()
*
* Preconditions:
* this.name != null
*
* Postconditions:
* init'ed(return_value)
*/
95 return name.hashCode();
96 }
97
98 /**
99 * Determines whether the specified object is equal to this one.
100 *
101 * @param o the object to compare against
102 * @return true if Object o represents the same category, false otherwise
103 */
104 public boolean equals(Object o) {
/*
P/P * Method: bool equals(Object)
*
* Preconditions:
* (soft) o.name != null
* (soft) init'ed(this.name)
*
* Postconditions:
* init'ed(return_value)
*/
105 if (!(o instanceof State)) {
106 return false;
107 }
108
109 State state = (State)o;
110 return state.getName().equals(name);
111 }
112
113 /**
114 * Returns a String representation of this object.
115 *
116 * @return a String
117 */
118 public String toString() {
/*
P/P * Method: String toString()
*
* Preconditions:
* init'ed(this.name)
*
* Postconditions:
* return_value == this.name
* init'ed(return_value)
*/
119 return this.name;
120 }
121
122 }
SofCheck Inspector Build Version : 2.22510
| state.java |
2010-Jun-25 19:40:32 |
| state.class |
2010-Jul-19 20:23:40 |