\CodePro Analytix Evaluation\src\com\instantiations\example\pattern\Priority.java
Violations: 0 high, 17 medium, 3 low
 
Violations
Missing file comment Invalid numeric literal: 3 The keyword "this" is unnecessary
Missing @version tag for type Priority Invalid field name: "ordinalLookup" starts with lowercase letters Use of conditional operator
Missing default constructor Private field should be final: ordinalLookup Should not compare values using the equals (==) operator
Variable should be declared as Map Invalid numeric literal: 3 Use of conditional operator
Invalid field name: "nameLookup" starts with lowercase letters Invalid string literal: "low" Should not compare values using the equals (==) operator
Private field should be final: nameLookup Invalid string literal: "medium" The keyword "this" is unnecessary
Define the load factor of HashMap instances Invalid string literal: "high"    
 
Source
1 package com.instantiations.example.pattern;
2
3 import java.util.HashMap;
4
5 /**
6  * Instances of the class <code>Priority</code> represent the priority of an
7  * issue.
8  * @author Albert Adams
9  */
10 public final class Priority
11    implements Comparable
12 {
13    /**
14     * The name of the priority.
15     */
16    private final String printName;
17
18    /**
19     * The ordinal value of the priority, used for comparison purposes.
20     */
21    private final int ordinal;
22
23    /**
24     * A table mapping the names of priorities to those priorities.
25     */
26    private static HashMap nameLookup = new HashMap(3);
27
28    /**
29     * The array of priorities.
30     */
31    private static Priority[] ordinalLookup = new Priority[3];
32
33    /**
34     * The object representing a low priority.
35     */
36    public static final Priority LOW = new Priority("low", 0);
37
38    /**
39     * The object representing a medium priority.
40     */
41    public static final Priority MEDIUM = new Priority("medium", 1);
42
43    /**
44     * The object representing a high priority.
45     */
46    public static final Priority HIGH = new Priority("high", 2);
47
48    /**
49     * Initialize a newly created priority. Prevent instances of this class from
50     * being created externally.
51     *
52     * @param name the name of the priority
53     * @param ordinal the ordinal value of the priority
54     */
55    private Priority(String name, int ordinal)
56    {
57       this.printName = name;
58       this.ordinal = ordinal;
59       nameLookup.put(name, this);
60       ordinalLookup[ordinal] = this;
61    }
62
63    /**
64     * Return the lowest priority.
65     *
66     * @return the lowest priority
67     */
68    public static Priority first()
69    {
70       return ordinalLookup[0];
71    }
72
73    /**
74     * Return the highest priority
75     *
76     * @return the highest priority
77     */
78    public static Priority last()
79    {
80       return ordinalLookup[ordinalLookup.length - 1];
81    }
82
83    /**
84     * Return the priority with the given name, or <code>null</code> if there is
85     * no priority with the given name.
86     *
87     * @param name the name of the priority to be returned
88     *
89     * @return the named priority
90     */
91    public static Priority valueOf(String name)
92    {
93       return (Priority) nameLookup.get(name);
94    }
95
96    /**
97     * Return the priority preceding this priority, or <code>null</code> if this
98     * is the lowest priority.
99     *
100     * @return the priority preceding this priority
101     */
102    public Priority predecessor()
103    {
104       return (this == first()) ? null : ordinalLookup[ordinal - 1];
105    }
106
107    /**
108     * Return the priority following this priority, or <code>null</code> if this
109     * is the highest priority.
110     *
111     * @return the priority following this priority
112     */
113    public Priority successor()
114    {
115       return (this == last()) ? null : ordinalLookup[ordinal + 1];
116    }
117
118    /**
119     * Compare this priority to the given priority.
120     *
121     * @param priority the priority to compare this to
122     *
123     * @return the difference between the ordinal values
124     *
125     * @see java.lang.Comparable#compareTo(Object)
126     */
127    public int compareTo(Object priority)
128    {
129       return this.ordinal - ((Priority) priority).ordinal;
130    }
131
132    /**
133     * Return the string representation of this priority.
134     *
135     * @return the name of the priority
136     */
137    public String toString()
138    {
139       return printName;
140    }
141 }
Powered by CodePro AnalytiX