View Javadoc

1   //$Id: ActionState.java 220 2006-03-17 00:22:16Z jg_hamburg $
2   /********************************************************************************
3    * DDTUnit, a Datadriven Approach to Unit- and Moduletesting
4    * Copyright (c) 2004, Joerg and Kai Gellien
5    * All rights reserved.
6    *
7    * The Software is provided under the terms of the Common Public License 1.0
8    * as provided with the distribution of DDTUnit in the file cpl-v10.html.
9    * Redistribution and use in source and binary forms, with or without
10   * modification, are permitted provided that the following conditions
11   * are met:
12   *
13   *     + Redistributions of source code must retain the above copyright
14   *       notice, this list of conditions and the following disclaimer.
15   *
16   *     + Redistributions in binary form must reproduce the above
17   *       copyright notice, this list of conditions and the following
18   *       disclaimer in the documentation and/or other materials provided
19   *       with the distribution.
20   *
21   *     + Neither the name of the authors or DDTUnit, nor the
22   *       names of its contributors may be used to endorse or promote
23   *       products derived from this software without specific prior
24   *       written permission.
25   *
26   * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
27   * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
28   * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
29   * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR
30   * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
31   * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
32   * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
33   * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
34   * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
35   * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
36   * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
37   ********************************************************************************/
38  package junitx.ddtunit.data.processing;
39  
40  /**
41   * Class for defining special processing states useful for object instanciation
42   */
43  final class ActionState {
44      /**
45       * Object parsing type, identifying a standard object to parse
46       */
47      public final static ActionState OBJECT_CREATION = new ActionState(4,
48              "Object Creation Processing");
49  
50      /**
51       * Assert parsing type, identifying a standard assertion to parse
52       */
53      public final static ActionState ASSERT_CREATION = new ActionState(5,
54              "Assert Creation Processing");
55  
56      /**
57       * Exception parsing type, identifying a standard expected exception to
58       * parse
59       */
60      public final static ActionState EXCEPTION_CREATION = new ActionState(6,
61              "Exception Creation Processing");
62  
63      /**
64       * XML Content parsing type, identifying xml content to parse
65       */
66      public final static ActionState CONTENT_CREATION = new ActionState(7,
67              "Content Extraction Processing");
68  
69      /**
70       * Subelement parsing type, identifying a substructure object to parse, e.g.
71       * a field of a value object
72       */
73      public final static ActionState SUBELEMENT_CREATION = new ActionState(8,
74              "Subelement Creation Processing");
75  
76      /**
77       * Collection parsing type, identifying a collection object to parse, e.g. a
78       * list of object values
79       */
80      public final static ActionState COLLECTION_CREATION = new ActionState(10,
81              "Collection Creation Processing");
82  
83      /**
84       * Map parsing type, identifying a map object to parse, e.g. a list of
85       * object values
86       */
87      public final static ActionState MAP_CREATION = new ActionState(11,
88              "Map Creation Processing");
89  
90      /**
91       * Date parsing type, identifying a Date object to parse, e.g. a date time
92       * object
93       */
94      public final static ActionState DATE_CREATION = new ActionState(12,
95              "Date Creation Processing");
96  
97      public static final ActionState ATTRLIST_CREATION = new ActionState(13,
98              "Internal Attribute Creation Processing");
99  
100     public static final ActionState ARRAY_CREATION = new ActionState(14,
101             "Array Creation Processing");
102 
103     public static final ActionState BEAN_CREATION = new ActionState(15,
104             "Bean Creation Processing");
105 
106     public static final ActionState CALL_CREATION = new ActionState(16,
107             "Call Creation Processing");
108 
109     public static final ActionState CONSTANT_CREATION = new ActionState(17,
110             "Constant Creation Process");
111 
112     private int id;
113 
114     private String name;
115 
116     private ActionState() {
117         // no special initialization
118     }
119 
120     private ActionState(int id, String name) {
121         if (id < 0 || name == null || name.compareTo("") == 0) {
122             throw new IllegalArgumentException(
123                     "Wrong arguments: id >= 0, name not empty.");
124         }
125         this.id = id;
126         this.name = name;
127     }
128 
129     /**
130      * Overwrite toString() method.
131      * 
132      * @return name of parse type
133      */
134     public String toString() {
135         return this.name;
136     }
137 
138     /**
139      * Returns <code>true</code> if this <code>ActionState</code> is the
140      * same as the o argument.
141      * 
142      * @return <code>true</code> if this <code>ActionState</code> is the
143      *         same as the o argument.
144      */
145     public boolean equals(Object obj) {
146         boolean check = false;
147         if (obj != null && obj.getClass() == getClass()) {
148             ActionState castedObj = (ActionState) obj;
149             check = ((this.id == castedObj.id) && (this.name == null ? castedObj.name == null
150                     : this.name.equals(castedObj.name)));
151         }
152         return check;
153     }
154 
155     /**
156      * Override hashCode.
157      * 
158      * @return the Objects hashcode.
159      */
160     public int hashCode() {
161         int hashCode = 1;
162         hashCode = 31 * hashCode + id;
163         hashCode = 31 * hashCode + (name == null ? 0 : name.hashCode());
164         return hashCode;
165     }
166 }