stevedlawrence commented on code in PR #948: URL: https://github.com/apache/daffodil/pull/948#discussion_r1096111873
########## daffodil-cli/src/main/scala/org/apache/daffodil/Main.scala: ########## @@ -454,30 +454,37 @@ class CLIConf(arguments: Array[String]) extends scallop.ScallopConf(arguments) { footer("""| |Run 'daffodil generate <language> --help' for subcommand specific options""".stripMargin) - object c extends scallop.Subcommand("c") { - banner("""|Usage: daffodil generate c -s <schema> [-r <root>] - | [-c <file>] [-T<tunable>=<value>...] - | [outdir] - | - |Generate C code from a DFDL schema to parse or unparse data - | - |Generate Options:""".stripMargin) - - descr("Generate C code from a DFDL schema") + // Takes language by name so we can pass it to scallop.Subcommand and interpolate it + // into strings without getting a puzzling java.lang.ClassCastException at runtime (class + // scala.collection.mutable.WrappedArray$ofRef cannot be cast to class java.lang.String) + class LanguageConf(languageArg: => String) extends scallop.Subcommand(languageArg) { + val language = languageArg + + banner(s"""|Usage: daffodil generate $language -s <schema> [-r <root>] + | [-c <file>] [-T<tunable>=<value>...] + | [outdir] + | + |Generate ${language.toUpperCase} code from a DFDL schema to parse or unparse data Review Comment: Thoughts on making `val language = languageArg.toUpperCase` and then just using `language` in the banner/options? That way if we ever support languages where the language name isn't as simple as the upper cased command then they can override it, e.g.: ```scala object rust extends LanguageConf("rust") { override val language = "Rust" } object rust extends LanguageConf("cpp") { override val language = "C++" } object rust extends LanguageConf("csharp") { override val language = "C#" } ``` -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: commits-unsubscr...@daffodil.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org