Inspector | Message | Severity | Location |
---|---|---|---|
Java Inspector 048 | Copyrights information should be present in each file. | 1 | |
Java Inspector 086 | Use equals() instead of == or != to compare objects. | 1 | 154:32 |
Java Inspector 015 | Do not change parameter value. For comprehensibility, formal parameters should be final | 2 | 135:25 |
Java Inspector 049 | Use a Collection instead of arrays Object[] | 2 | 29:9 |
Java Inspector 073 [java.lang.StringBuffer] | In Java 5 use StringBuilder instead of StringBuffer if access is single-threaded, e.g. StringBuffer is used as a local variable . | 2 | 121:17 |
Java Inspector 082 | Parenthesis are redundant. | 2 | 144:36 |
Java Inspector 089 | Type documentation is too short. It is only 1 words. Should be at least 3 words. | 2 | 15:1 |
Java Inspector 089 | Undocumented constructor | 2 | 32:9 |
Java Inspector 089 | Undocumented constructor | 2 | 40:9 |
Java Inspector 089 | Undocumented constructor | 2 | 48:9 |
Java Inspector 089 | Undocumented constructor | 2 | 56:9 |
Java Inspector 089 | Undocumented constructor | 2 | 64:9 |
Java Inspector 089 | Undocumented constructor | 2 | 72:9 |
Java Inspector 089 | Undocumented constructor | 2 | 80:9 |
Java Inspector 089 | Undocumented constructor | 2 | 88:9 |
Java Inspector 089 | Undocumented constructor | 2 | 96:9 |
Java Inspector 089 | Undocumented constructor | 2 | 104:9 |
Java Inspector 089 | Undocumented constructor | 2 | 112:9 |
Java Inspector 089 | Undocumented method | 2 | 120:9 |
Java Inspector 089 | Undocumented method | 2 | 133:9 |
Java Inspector 089 | Undocumented method | 2 | 140:9 |
Java Inspector 089 | Undocumented method | 2 | 149:9 |
Java Inspector 003 | do, while, if, and for statements need a brace enclosed block | 3 | 20:25 |
Java Inspector 003 | do, while, if, and for statements need a brace enclosed block | 3 | 151:25 |
Java Inspector 003 | do, while, if, and for statements need a brace enclosed block | 3 | 153:25 |
Java Inspector 003 | do, while, if, and for statements need a brace enclosed block | 3 | 155:25 |
Java Inspector 003 | do, while, if, and for statements need a brace enclosed block | 3 | 159:33 |
Java Inspector 003 | do, while, if, and for statements need a brace enclosed block | 3 | 161:25 |
Java Inspector 003 | do, while, if, and for statements need a brace enclosed block | 3 | 163:25 |
Java Inspector 025 | Avoid hardwired numeric literals. Allowed literals: [1, -1, 0] | 3 | 18:35 |
Java Inspector 025 | Avoid hardwired numeric literals. Allowed literals: [1, -1, 0] | 3 | 141:35 |
Java Inspector 026 | Avoid hardwired string literals. Allowed literals: [] | 3 | 122:28 |
Java Inspector 026 | Avoid hardwired string literals. Allowed literals: [] | 3 | 125:44 |
Java Inspector 026 | Avoid hardwired string literals. Allowed literals: [] | 3 | 127:36 |
Java Inspector 026 | Avoid hardwired string literals. Allowed literals: [] | 3 | 129:28 |
Java Inspector 051 | It is good practice to call in any case super() in a constructor. | 3 | 32:9 |
Java Inspector 051 | It is good practice to call in any case super() in a constructor. | 3 | 40:9 |
Java Inspector 051 | It is good practice to call in any case super() in a constructor. | 3 | 48:9 |
Java Inspector 051 | It is good practice to call in any case super() in a constructor. | 3 | 56:9 |
Java Inspector 051 | It is good practice to call in any case super() in a constructor. | 3 | 64:9 |
Java Inspector 051 | It is good practice to call in any case super() in a constructor. | 3 | 72:9 |
Java Inspector 051 | It is good practice to call in any case super() in a constructor. | 3 | 80:9 |
Java Inspector 051 | It is good practice to call in any case super() in a constructor. | 3 | 88:9 |
Java Inspector 051 | It is good practice to call in any case super() in a constructor. | 3 | 96:9 |
Java Inspector 051 | It is good practice to call in any case super() in a constructor. | 3 | 104:9 |
Java Inspector 051 | It is good practice to call in any case super() in a constructor. | 3 | 112:9 |
1package biz.hammurapi.sql.syntax;
2
3import java.io.Serializable;
4import java.sql.PreparedStatement;
5import java.sql.SQLException;
6import java.util.Arrays;
7
8import biz.hammurapi.sql.Variant;
9
10/**
11 * In
12 * @author Pavel
13 *
14 */
15public class In implements StatementFragment, Serializable {
16
17 private static int hashCode(Object[] array) {
18 final int prime = 31;
19 if (array == null)
20 return 0;
21 int result = 1;
22 for (int index = 0; index < array.length; index++) {
23 result = prime * result
24 + (array[index] == null ? 0 : array[index].hashCode());
25 }
26 return result;
27 }
28
29 private Variant[] variants;
30 private String columnName;
31
32 public In(String columnName, boolean[] values) {
33 variants = new Variant[values.length];
34 for (int i=0; i<values.length; ++i) {
35 variants[i] = new Variant(values[i]);
36 }
37 this.columnName = columnName;
38 }
39
40 public In(String columnName, byte[] values) {
41 variants = new Variant[values.length];
42 for (int i=0; i<values.length; ++i) {
43 variants[i] = new Variant(values[i]);
44 }
45 this.columnName = columnName;
46 }
47
48 public In(String columnName, char[] values) {
49 variants = new Variant[values.length];
50 for (int i=0; i<values.length; ++i) {
51 variants[i] = new Variant(values[i]);
52 }
53 this.columnName = columnName;
54 }
55
56 public In(String columnName, double[] values) {
57 variants = new Variant[values.length];
58 for (int i=0; i<values.length; ++i) {
59 variants[i] = new Variant(values[i]);
60 }
61 this.columnName = columnName;
62 }
63
64 public In(String columnName, float[] values) {
65 variants = new Variant[values.length];
66 for (int i=0; i<values.length; ++i) {
67 variants[i] = new Variant(values[i]);
68 }
69 this.columnName = columnName;
70 }
71
72 public In(String columnName, int[] values) {
73 variants = new Variant[values.length];
74 for (int i=0; i<values.length; ++i) {
75 variants[i] = new Variant(values[i]);
76 }
77 this.columnName = columnName;
78 }
79
80 public In(String columnName, long[] values) {
81 variants = new Variant[values.length];
82 for (int i=0; i<values.length; ++i) {
83 variants[i] = new Variant(values[i]);
84 }
85 this.columnName = columnName;
86 }
87
88 public In(String columnName, String[] values) {
89 variants = new Variant[values.length];
90 for (int i=0; i<values.length; ++i) {
91 variants[i] = new Variant(values[i]);
92 }
93 this.columnName = columnName;
94 }
95
96 public In(String columnName, Object[] values) {
97 variants = new Variant[values.length];
98 for (int i=0; i<values.length; ++i) {
99 variants[i] = new Variant(values[i]);
100 }
101 this.columnName = columnName;
102 }
103
104 public In(String columnName, Object[] values, int sqlType) {
105 variants = new Variant[values.length];
106 for (int i=0; i<values.length; ++i) {
107 variants[i] = new Variant(values[i]);
108 }
109 this.columnName = columnName;
110 }
111
112 public In(String columnName, short[] values) {
113 variants = new Variant[values.length];
114 for (int i=0; i<values.length; ++i) {
115 variants[i] = new Variant(values[i]);
116 }
117 this.columnName = columnName;
118 }
119
120 public String toSqlString() {
121 StringBuffer ret = new StringBuffer(columnName);
122 ret.append(" IN (");
123 for (int i=0; i<variants.length; ++i) {
124 if (i>0) {
125 ret.append(", ");
126 }
127 ret.append("?");
128 }
129 ret.append(")");
130 return ret.toString();
131 }
132
133 public int parameterize(PreparedStatement ps, int idx) throws SQLException {
134 for (int i=0; i<variants.length; ++i) {
135 idx=variants[i].parameterize(ps, idx);
136 }
137 return idx;
138 }
139
140 public int hashCode() {
141 final int prime = 31;
142 int result = 1;
143 result = prime * result
144 + ((columnName == null) ? 0 : columnName.hashCode());
145 result = prime * result + In.hashCode(variants);
146 return result;
147 }
148
149 public boolean equals(Object obj) {
150 if (this == obj)
151 return true;
152 if (obj == null)
153 return false;
154 if (getClass() != obj.getClass())
155 return false;
156 final In other = (In) obj;
157 if (columnName == null) {
158 if (other.columnName != null)
159 return false;
160 } else if (!columnName.equals(other.columnName))
161 return false;
162 if (!Arrays.equals(variants, other.variants))
163 return false;
164 return true;
165 }
166
167}
168