Skip to content

Commit d4fdccf

Browse files
committed
R extract method to array utils
1 parent 59ebde7 commit d4fdccf

File tree

2 files changed

+19
-20
lines changed

2 files changed

+19
-20
lines changed

approvaltests-util/src/main/java/com/spun/util/ArrayUtils.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,10 @@
1010
import java.util.HashMap;
1111
import java.util.Iterator;
1212
import java.util.List;
13+
import java.util.Map;
1314
import java.util.Vector;
1415

16+
import org.lambda.functions.Function0;
1517
import org.lambda.functions.Function1;
1618
import org.lambda.query.Queryable;
1719

@@ -276,6 +278,17 @@ public static <T> T[] toArray(List<T> list, Class<T> type)
276278
{
277279
return Queryable.as(list, type).asArray();
278280
}
281+
public static <KEY, VALUES, SPECIFIC_VALUE extends VALUES> SPECIFIC_VALUE getOrElse(Map<KEY, VALUES> fields, KEY key, Function0<SPECIFIC_VALUE> defaultIfNotFound)
282+
{
283+
if (fields.containsKey(key))
284+
{
285+
return (SPECIFIC_VALUE) fields.get(key);
286+
}
287+
else
288+
{
289+
return defaultIfNotFound.call();
290+
}
291+
}
279292
public static class IterableWrapper<T> implements Iterable<T>
280293
{
281294
private final Iterator<T> iterator;

approvaltests/src/main/java/org/approvaltests/core/Options.java

Lines changed: 6 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,8 @@
88
import org.approvaltests.namer.ApprovalNamer;
99
import org.approvaltests.namer.NamerWrapper;
1010
import org.approvaltests.scrubbers.NoOpScrubber;
11-
import org.lambda.functions.Function0;
11+
12+
import com.spun.util.ArrayUtils;
1213

1314
public class Options
1415
{
@@ -35,22 +36,7 @@ public Options(Options parent, FileOptions fileOptions)
3536
}
3637
public ApprovalFailureReporter getReporter()
3738
{
38-
return getOrElse("reporter", ReporterFactory::get);
39-
}
40-
private <T> T getOrElse(String key, Function0<T> defaultIfNotFound)
41-
{
42-
return getOrElse(fields, key, defaultIfNotFound);
43-
}
44-
public static <T> T getOrElse(Map<String, Object> fields, String key, Function0<T> defaultIfNotFound)
45-
{
46-
if (fields.containsKey(key))
47-
{
48-
return (T) fields.get(key);
49-
}
50-
else
51-
{
52-
return defaultIfNotFound.call();
53-
}
39+
return ArrayUtils.getOrElse(fields, "reporter", ReporterFactory::get);
5440
}
5541
public Options withReporter(ApprovalFailureReporter reporter)
5642
{
@@ -66,7 +52,7 @@ public String scrub(String input)
6652
}
6753
private Scrubber getScrubber()
6854
{
69-
return getOrElse("scrubber", () -> NoOpScrubber.INSTANCE);
55+
return ArrayUtils.getOrElse(fields, "scrubber", () -> NoOpScrubber.INSTANCE);
7056
}
7157
public FileOptions forFile()
7258
{
@@ -89,11 +75,11 @@ public Options withExtension(String fileExtensionWithDot)
8975
}
9076
public ApprovalNamer getNamer()
9177
{
92-
return getOrElse(fields, "fileOptions.namer", Approvals::createApprovalNamer);
78+
return ArrayUtils.getOrElse(fields, "fileOptions.namer", Approvals::createApprovalNamer);
9379
}
9480
public String getFileExtension()
9581
{
96-
return getOrElse(fields, "fileOptions.fileExtension", () -> ".txt");
82+
return ArrayUtils.getOrElse(fields, "fileOptions.fileExtension", () -> ".txt");
9783
}
9884
public Options withBaseName(String fileBaseName)
9985
{

0 commit comments

Comments
 (0)