我需要从脚本的一组输入中生成一个脚本(星号 OBD 脚本),一种带有例程和子例程的 shell 脚本。我需要用Java来做。使用哪种设计模式进行代码生成?我尝试了模板模式和命令模式,但半途而废并停止了。任何想法、设计、文档和其他将不胜感激。
下面是示例代码。注 1:<> 是作为输入提供的参数。注2:嵌套的dtmf信息,取决于子程序的编码。让我知道是否需要更多解释。
[<context_name>]
exten => answered,1,set(actionid=actionid:${ACTIONID})
same => n, wait(1)
same => n, read(input,<file path>/<file>,1,,,10)
same => n, gotoif($[${input}=1]?1pressed,1)
same => n, gotoif($[${input}=2]?2pressed,1)
same => n, noop("No/Invalid input")
same => n,hangup
exten => 1pressed,1,read(inputsub,<file path>/<play1>,1,,,10)
same => n, gotoif($[${input}=1]?1subpressed,1)
same => n, gotoif($[${input}=2]?2subpressed,1)
same => n, noop("No/Invalid input")
same => n,hangup
same => n(1subpressed),playback(<file path>/<playsub11>)
same => n,hangup
same => n(2subpressed),playback(<file path>/<playsub12>)
same => n,hangup
exten => 2pressed,1,playback(<file path>/<play2>)
same => n,hangup
exten =>h,1, set(CDR(userfield)=$actionid)
same => n, hangup