From 66bc6bc5195e886fa5dc6fdde5e0a8261759eee8 Mon Sep 17 00:00:00 2001 From: Norman Walsh Date: Sun, 24 Oct 2021 16:27:02 +0100 Subject: [PATCH] Support config changes in the API --- .../com/xmlcalabash/util/ArgBundle.scala | 20 +++++++++++++++++++ .../xmlcalabash/util/PipelineParameter.scala | 1 + 2 files changed, 21 insertions(+) diff --git a/src/main/scala/com/xmlcalabash/util/ArgBundle.scala b/src/main/scala/com/xmlcalabash/util/ArgBundle.scala index d73b7da..82118fa 100644 --- a/src/main/scala/com/xmlcalabash/util/ArgBundle.scala +++ b/src/main/scala/com/xmlcalabash/util/ArgBundle.scala @@ -91,6 +91,10 @@ class ArgBundle() { _parameters += new PipelineInputText(port, text, contentType) } + def input(port: String, text: String, contentType: String): Unit = { + _parameters += new PipelineInputText(port, text, MediaType.parse(contentType)) + } + def output(port: String, document: String): Unit = { _parameters += new PipelineOutputFilename(port, document) } @@ -147,6 +151,22 @@ class ArgBundle() { _parameters += new PipelineExpressionOption(eqname, value) } + def config(eqname: String, value: String): Unit = { + if (eqname == "file" || eqname == "Q{}file" || eqname == s"Q{${XProcConstants.ns_cc}}file") { + _parameters += new PipelineConfigurationFile(new PipelineFilenameDocument(value)) + } else { + if (eqname.contains("{")) { + _parameters += new PipelineEnvironmentOptionString(eqname, value) + } else { + _parameters += new PipelineEnvironmentOptionString(s"Q{${XProcConstants.ns_cc}}${eqname}", value) + } + } + } + + def config(name: QName, value: String): Unit = { + config(name.getEQName, value) + } + def parse(args: List[String]): Unit = { // -iport=input | --input port=input // -oport=output | --output port=output diff --git a/src/main/scala/com/xmlcalabash/util/PipelineParameter.scala b/src/main/scala/com/xmlcalabash/util/PipelineParameter.scala index 0f61a1d..39026cf 100644 --- a/src/main/scala/com/xmlcalabash/util/PipelineParameter.scala +++ b/src/main/scala/com/xmlcalabash/util/PipelineParameter.scala @@ -110,6 +110,7 @@ class PipelineEnvironmentOptionString(eqname: String, val value: String) extends } } override def getString: Option[String] = Some(value) + override def toString: String = s"config: ${eqname} = ${value}" } class PipelineEnvironmentOptionMap(eqname: String, var key: String, var value: String) extends PipelineEnvironmentOption(eqname) {