Skip to content

Commit

Permalink
Return empty String sequence in kind for in metaschema-framework#132
Browse files Browse the repository at this point in the history
  • Loading branch information
aj-stein-gsa committed Oct 8, 2024
1 parent a83404f commit ab628ef
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -113,8 +113,14 @@ private static ISequence<IStringItem> execute(
*/
@NonNull
public static IStringItem substring(@NonNull IStringItem sourceString, @NonNull IDecimalItem start, @NonNull IDecimalItem length) {
String sourceStringData = sourceString.toString();

if (sourceStringData.length() == 0) {
return IStringItem.valueOf("");
}

int startIndex = start.asInteger().intValue() - 1;
int endIndex = startIndex + length.asInteger().intValue();
return IStringItem.valueOf(sourceString.toString().substring(startIndex, endIndex));
return IStringItem.valueOf(sourceStringData.substring(startIndex, endIndex));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,9 @@ class FnSubstringTest
extends ExpressionTestBase {
private static Stream<Arguments> provideValues() { // NOPMD - false positive
return Stream.of(
Arguments.of(
string(""),
"substring((), 1, 3)"),
Arguments.of(
ISequence.of(string("ada")),
"substring('metadata', 4, 3)"));
Expand Down

0 comments on commit ab628ef

Please sign in to comment.