Skip to content

Commit 275e617

Browse files
committed
refactor: simplify parseValues() with guard clauses and use extracted parseListValues()
1 parent 99890af commit 275e617

File tree

1 file changed

+6
-33
lines changed

1 file changed

+6
-33
lines changed

src/main/java/com/contrast/labs/ai/mcp/contrast/tool/validation/MetadataJsonFilterSpec.java

Lines changed: 6 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -101,41 +101,14 @@ private List<String> parseValues(Object val, String fieldName, List<String> inva
101101
return null;
102102
}
103103
return List.of(s);
104-
} else if (val instanceof Number n) {
104+
}
105+
if (val instanceof Number n) {
105106
return List.of(formatNumber(n));
106-
} else if (val instanceof List<?> list) {
107-
if (list.isEmpty()) {
108-
invalidEntries.add(
109-
String.format("'%s' (empty array - must have at least one value)", fieldName));
110-
return null;
111-
}
112-
var strings = new ArrayList<String>();
113-
for (Object item : list) {
114-
if (item == null) {
115-
invalidEntries.add(
116-
String.format(
117-
"'%s' (contains empty value - all values must be non-empty)", fieldName));
118-
return null;
119-
}
120-
if (item instanceof String s) {
121-
if (s.isBlank()) {
122-
invalidEntries.add(
123-
String.format(
124-
"'%s' (contains empty value - all values must be non-empty)", fieldName));
125-
return null;
126-
}
127-
strings.add(s);
128-
} else if (item instanceof Number n) {
129-
strings.add(formatNumber(n));
130-
} else {
131-
invalidEntries.add(String.format("'%s' (array contains non-string values)", fieldName));
132-
return null;
133-
}
134-
}
135-
return List.copyOf(strings);
136-
} else {
137-
invalidEntries.add(String.format("'%s' (expected string or array of strings)", fieldName));
138107
}
108+
if (val instanceof List<?> list) {
109+
return parseListValues(list, fieldName, invalidEntries);
110+
}
111+
invalidEntries.add(String.format("'%s' (expected string or array of strings)", fieldName));
139112
return null;
140113
}
141114

0 commit comments

Comments
 (0)