From 43cdb9b51a48dffce8f085940283110dc99ea531 Mon Sep 17 00:00:00 2001 From: lukaseder Date: Fri, 9 Dec 2016 13:45:40 +0100 Subject: [PATCH] [#5681] Add MockFileDatabase.nullLiteral() allowing to override the null literal in DSLContext.fetchFromTXT() --- .../org/jooq/tools/jdbc/MockFileDatabase.java | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/jOOQ/src/main/java/org/jooq/tools/jdbc/MockFileDatabase.java b/jOOQ/src/main/java/org/jooq/tools/jdbc/MockFileDatabase.java index ab4115bc2b..66e6465f19 100644 --- a/jOOQ/src/main/java/org/jooq/tools/jdbc/MockFileDatabase.java +++ b/jOOQ/src/main/java/org/jooq/tools/jdbc/MockFileDatabase.java @@ -127,6 +127,7 @@ public class MockFileDatabase implements MockDataProvider { private final Map> matchExactly; private final Map> matchPattern; private final DSLContext create; + private String nullLiteral; public MockFileDatabase(File file) throws IOException { this(file, "UTF-8"); @@ -152,6 +153,18 @@ public class MockFileDatabase implements MockDataProvider { this(new StringReader(string)); } + /** + * Specify the null literal, i.e. the string that should be + * parsed as a null reference, rather than as the string + * itself. + * + * @see DSLContext#fetchFromTXT(String, String) + */ + public MockFileDatabase nullLiteral(String literal) { + this.nullLiteral = literal; + return this; + } + private MockFileDatabase(LineNumberReader reader) throws IOException { this.in = reader; this.matchExactly = new LinkedHashMap>(); @@ -278,7 +291,11 @@ public class MockFileDatabase implements MockDataProvider { rows = Integer.parseInt(rowString.substring(7).trim()); } - return new MockResult(rows, create.fetchFromTXT(currentResult.toString())); + return new MockResult(rows, + nullLiteral == null + ? create.fetchFromTXT(currentResult.toString()) + : create.fetchFromTXT(currentResult.toString(), nullLiteral) + ); } private String readLine() throws IOException {