2013-09-25 2 views
0

Мне нужно сгенерировать скрипт (сценарий OBD Asterisk), тип сценария оболочки, с подпрограммами и подпрограммами, из набора входов для скрипта. Мне нужно сделать это на Java. Какой шаблон проектирования использовать для генерации кода? Я пробовал шаблон шаблона и шаблон команды, но был на полпути запутанным и остановлен. любая идея, дизайн, doc и другие были бы оценены.Генерация кода - шаблон проектирования

Ниже приведен пример кода. примечание 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 
+0

полностью зависит от спецификации процесса генерации кода , Если вам просто нужно выплюнуть всегда одни и те же единицы кода, вы пойдете на другую технику, а не на создание кода, который является парсером для данной грамматики, например. Поэтому, не зная, что такое вход, и что должен сгенерировать сценарий, никто не может дать хороший ответ. Возможно, неплохо было бы опубликовать код, который вы пробовали до сих пор, каким бы пустым это ни оставляло вас. – TheBlastOne

+0

Я отредактировал вопрос, предоставив образец кода сценария вывода, который будет сгенерирован. –

ответ

0

Это может быть излишним за то, что вам нужно сделать, но в модели управляемых проектов я реализовал несколько обширных генераторов кода на основе моделей EMF с использованием Eclipse, m2t (http://www.eclipse.org/modeling/m2t/), хотя она называлась openArchitectureWare назад тогда.

Ваш вход должен был бы доступен в качестве модели, хотя, и вы должны ознакомиться с языками, которые используются в M2T для генерации кода, как Xpand

Смежные вопросы