Skip to content

Commit 58f116e

Browse files
committed
Use known return types
1 parent 6635036 commit 58f116e

File tree

1 file changed

+14
-3
lines changed

1 file changed

+14
-3
lines changed

schemacrawler-ai-core/src/main/java/schemacrawler/tools/ai/tools/AbstractExecutableFunctionExecutor.java

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@
1313
import com.fasterxml.jackson.databind.JsonNode;
1414
import com.fasterxml.jackson.databind.node.ObjectNode;
1515
import java.io.StringWriter;
16+
import java.util.logging.Level;
17+
import java.util.logging.Logger;
1618
import schemacrawler.schemacrawler.SchemaCrawlerOptions;
1719
import schemacrawler.tools.ai.functions.JsonFunctionReturn;
1820
import schemacrawler.tools.ai.functions.TextFunctionReturn;
@@ -24,10 +26,14 @@
2426
import us.fatehi.utility.datasource.DatabaseConnectionSource;
2527
import us.fatehi.utility.datasource.DatabaseConnectionSources;
2628
import us.fatehi.utility.property.PropertyName;
29+
import us.fatehi.utility.string.StringFormat;
2730

2831
public abstract class AbstractExecutableFunctionExecutor<P extends FunctionParameters>
2932
extends AbstractSchemaCrawlerFunctionExecutor<P> {
3033

34+
private static final Logger LOGGER =
35+
Logger.getLogger(AbstractExecutableFunctionExecutor.class.getCanonicalName());
36+
3137
protected AbstractExecutableFunctionExecutor(final PropertyName functionName) {
3238
super(functionName);
3339
}
@@ -63,18 +69,23 @@ public final FunctionReturn call() {
6369
}
6470
}
6571

72+
final String results = writer.toString();
6673
switch (functionReturnType) {
6774
case JSON:
68-
final String results = writer.toString();
6975
try {
7076
final JsonNode node = mapper.readTree(results);
7177
return new JsonFunctionReturn(node);
7278
} catch (final Exception e) {
73-
return () -> results;
79+
LOGGER.log(
80+
Level.WARNING,
81+
e,
82+
new StringFormat(
83+
"Could not convert results from <%s> to JSON", getCommandName().getName()));
84+
return new TextFunctionReturn(results);
7485
}
7586
case TEXT:
7687
default:
77-
return () -> writer.toString();
88+
return new TextFunctionReturn(results);
7889
}
7990
}
8091

0 commit comments

Comments
 (0)