aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/zwobble/couscous/backends/SourceCodeWriter.java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2016-01-16 15:32:34 +0000
committerMichael Williamson <mike@zwobble.org>2016-01-16 15:32:34 +0000
commit907cca69480959dd76afa3cb039244dd3b9833ca (patch)
treeb59d806dc7bcc73f1123f227bd9d82943b10029c /src/main/java/org/zwobble/couscous/backends/SourceCodeWriter.java
parent4197fcbcd7a54cc11231d80edd1d17effce9b1e9 (diff)
Support method arguments in C# backend
Diffstat (limited to 'src/main/java/org/zwobble/couscous/backends/SourceCodeWriter.java')
-rw-r--r--src/main/java/org/zwobble/couscous/backends/SourceCodeWriter.java15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/main/java/org/zwobble/couscous/backends/SourceCodeWriter.java b/src/main/java/org/zwobble/couscous/backends/SourceCodeWriter.java
index 3f135de..a50515f 100644
--- a/src/main/java/org/zwobble/couscous/backends/SourceCodeWriter.java
+++ b/src/main/java/org/zwobble/couscous/backends/SourceCodeWriter.java
@@ -3,6 +3,11 @@ package org.zwobble.couscous.backends;
import com.google.common.base.Strings;
import org.zwobble.couscous.util.Action;
+import java.util.List;
+import java.util.function.Consumer;
+
+import static com.google.common.collect.Iterables.skip;
+
public class SourceCodeWriter {
public interface WriterAction {
void run(SourceCodeWriter writer);
@@ -85,4 +90,14 @@ public class SourceCodeWriter {
private void runAction(WriterAction action) {
action.run(this);
}
+
+ public <T> void writeWithSeparator(List<T> values, Consumer<T> writeValue, Action separator) {
+ if (!values.isEmpty()) {
+ writeValue.accept(values.get(0));
+ for (T value : skip(values, 1)) {
+ separator.run();
+ writeValue.accept(value);
+ }
+ }
+ }
}