Skip to content

Commit 9d2fd40

Browse files
committed
Syntax
1 parent 29ef7f8 commit 9d2fd40

File tree

1 file changed

+55
-58
lines changed

1 file changed

+55
-58
lines changed

generator/src/main/java/org/jsonx/AnnotationType.java

+55-58
Original file line numberDiff line numberDiff line change
@@ -28,71 +28,65 @@
2828

2929
class AnnotationType {
3030
@SuppressWarnings("unchecked")
31-
private StringBuilder render() {
32-
// FIXME: Use the StringBuilder from the caller.
33-
final StringBuilder b = new StringBuilder();
34-
if (attributes.size() > 0) {
35-
for (final Map.Entry<String,Object> entry : attributes.entrySet()) { // [S]
36-
if (b.length() > 0)
37-
b.append(", ");
38-
39-
final String key = entry.getKey();
40-
final Object value = entry.getValue();
41-
42-
final Method method = Classes.getMethod(annotationType, key);
43-
final Object defaultValue = method.getDefaultValue();
44-
if (value instanceof List) {
45-
final Object[] defaultArray = (Object[])defaultValue;
46-
final List<Object> items = (List<Object>)value;
47-
final int i$ = items.size();
48-
if (defaultArray != null) {
49-
if (i$ == 0 && defaultArray.length == 0)
50-
continue;
51-
52-
if (defaultArray.equals(items.toArray()))
53-
continue;
54-
}
31+
private void render(final StringBuilder b) {
32+
final int len = b.length();
33+
for (final Map.Entry<String,Object> entry : attributes.entrySet()) { // [S]
34+
if (b.length() > len)
35+
b.append(", ");
36+
37+
final String key = entry.getKey();
38+
final Object value = entry.getValue();
39+
40+
final Method method = Classes.getMethod(annotationType, key);
41+
final Object defaultValue = method.getDefaultValue();
42+
if (value instanceof List) {
43+
final Object[] defaultArray = (Object[])defaultValue;
44+
final List<Object> items = (List<Object>)value;
45+
final int i$ = items.size();
46+
if (defaultArray != null) {
47+
if (i$ == 0 && defaultArray.length == 0)
48+
continue;
49+
50+
if (defaultArray.equals(items.toArray()))
51+
continue;
52+
}
5553

56-
b.append(key).append(" = ");
57-
if (i$ == 1) {
58-
b.append(items.get(0));
54+
b.append(key).append(" = ");
55+
if (i$ == 1) {
56+
b.append(items.get(0));
57+
}
58+
else {
59+
b.append('{');
60+
int i = 0;
61+
if (CollectionUtil.isRandomAccess(items)) {
62+
do { // [RA]
63+
if (i > 0)
64+
b.append(", ");
65+
66+
b.append(items.get(i));
67+
}
68+
while (++i < i$);
5969
}
6070
else {
61-
b.append('{');
62-
if (CollectionUtil.isRandomAccess(items)) {
63-
int i = 0;
64-
do { // [RA]
65-
if (i > 0)
66-
b.append(", ");
71+
final Iterator<Object> it = items.iterator();
72+
do { // [I]
73+
if (++i > 1)
74+
b.append(", ");
6775

68-
b.append(items.get(i));
69-
}
70-
while (++i < i$);
76+
b.append(it.next());
7177
}
72-
else {
73-
final Iterator<Object> it = items.iterator();
74-
int j = 0;
75-
do { // [RA]
76-
if (j > 0)
77-
b.append(", ");
78-
79-
b.append(it.next());
80-
}
81-
while (it.hasNext());
82-
}
83-
84-
b.append('}');
78+
while (it.hasNext());
8579
}
80+
81+
b.append('}');
8682
}
87-
else {
88-
final Object fixedDefaultValue = defaultValue != null && value instanceof String ? "\"" + defaultValue + "\"" : defaultValue;
89-
if (!Objects.equals(fixedDefaultValue, value))
90-
b.append(key).append(" = ").append(value);
91-
}
83+
}
84+
else {
85+
final Object fixedDefaultValue = defaultValue != null && value instanceof String ? "\"" + defaultValue + "\"" : defaultValue;
86+
if (!Objects.equals(fixedDefaultValue, value))
87+
b.append(key).append(" = ").append(value);
9288
}
9389
}
94-
95-
return b;
9690
}
9791

9892
private final Class<? extends Annotation> annotationType;
@@ -107,8 +101,11 @@ private StringBuilder render() {
107101
public String toString() {
108102
final StringBuilder b = new StringBuilder();
109103
b.append('@').append(annotationType.getName());
110-
if (attributes.size() > 0)
111-
b.append('(').append(render()).append(')');
104+
if (attributes.size() > 0) {
105+
b.append('(');
106+
render(b);
107+
b.append(')');
108+
}
112109

113110
return b.toString();
114111
}

0 commit comments

Comments
 (0)