summaryrefslogtreecommitdiff
path: root/clformat/src/main/java/bjc/utils
diff options
context:
space:
mode:
Diffstat (limited to 'clformat/src/main/java/bjc/utils')
-rw-r--r--clformat/src/main/java/bjc/utils/ioutils/format/directives/CompileContext.java10
-rw-r--r--clformat/src/main/java/bjc/utils/ioutils/format/directives/Edict.java18
-rw-r--r--clformat/src/main/java/bjc/utils/ioutils/format/directives/FormatContext.java23
3 files changed, 51 insertions, 0 deletions
diff --git a/clformat/src/main/java/bjc/utils/ioutils/format/directives/CompileContext.java b/clformat/src/main/java/bjc/utils/ioutils/format/directives/CompileContext.java
new file mode 100644
index 0000000..34c3c0b
--- /dev/null
+++ b/clformat/src/main/java/bjc/utils/ioutils/format/directives/CompileContext.java
@@ -0,0 +1,10 @@
+package bjc.utils.ioutils.format.directives;
+
+/**
+ * Encapsulates the state necessary for compiling Directives into Edicts.
+ *
+ * @author Ben Culkin
+ */
+public class CompileContext {
+
+}
diff --git a/clformat/src/main/java/bjc/utils/ioutils/format/directives/Edict.java b/clformat/src/main/java/bjc/utils/ioutils/format/directives/Edict.java
new file mode 100644
index 0000000..50134b2
--- /dev/null
+++ b/clformat/src/main/java/bjc/utils/ioutils/format/directives/Edict.java
@@ -0,0 +1,18 @@
+package bjc.utils.ioutils.format.directives;
+
+/**
+ *
+ * The compiled equivalent of {@link Directive}.
+ *
+ * @author Ben Culkin.
+ */
+@FunctionalInterface
+public interface Edict {
+ /**
+ * Invoke this format directive.
+ *
+ * @param formCTX
+ * The state needed for this invocation.
+ */
+ public void format(FormatContext formCTX);
+}
diff --git a/clformat/src/main/java/bjc/utils/ioutils/format/directives/FormatContext.java b/clformat/src/main/java/bjc/utils/ioutils/format/directives/FormatContext.java
new file mode 100644
index 0000000..95c984b
--- /dev/null
+++ b/clformat/src/main/java/bjc/utils/ioutils/format/directives/FormatContext.java
@@ -0,0 +1,23 @@
+package bjc.utils.ioutils.format.directives;
+
+import bjc.utils.esodata.*;
+import bjc.utils.ioutils.*;
+import bjc.utils.ioutils.format.*;
+
+/**
+ * Encapsulates all of the state that is provided to edicts when they are
+ * formatted.
+ *
+ * @author Ben Culkin
+ */
+public class FormatContext {
+ /**
+ * The place where we write all of out outputs to.
+ */
+ public ReportWriter writer;
+
+ /**
+ * The parameters passed into invocation of formatting.
+ */
+ public Tape<Object> items;
+}