У нас интересная проблема.Мы являемся полиграфической компанией, которая позволяет пользователям печатать шаблонные материалы на основе различных сторонних источников.Примером может быть поиск сведений о доме для продажи и вставка этих значений в брошюру для этого дома.
В настоящее время наши шаблоны определены в XML-файле.Одним из атрибутов метки текста является имя метода, которое нужно вызвать в нашей системе, чтобы получить необходимое значение для автопопуляции.Поскольку бэкэнд написан на Java, мы используем отражение для поиска метода в одном из нескольких объектов, переданных пользователем.В качестве примера это выглядит следующим образом ...
<PagePart>
<profileTag>**getAddress**</profileTag>
<text>123 Example St NW</text>
<fontFile>Helvetica.TTF</fontFile>
<fontName>Helvetica</fontName>
<fontStyle>0</fontStyle>
<fontAlignment>0</fontAlignment>
<fontSize>18</fontSize>
<positionLeft>19</positionLeft>
<positionTop>88</positionTop>
<Color>
<r>0</r>
<g>130</g>
<b>200</b>
</Color>
<visibility>false</visibility>
</PagePart>
getAddress внутри profileTag - это метод в нашей системе, который вызывается при инициализации нового экземпляра шаблона.Когда мы добавляем новые шаблоны, у нас есть потребность в создании необычных строк, подобных этому
public String getBusinessPhoneWithTitle() {
if (!phone.isEmpty()) return "B " + phone;
else return "";
}
Мы планируем иметь тысячи шаблонов (в настоящее время сотни) и эти методы «форматирования», которые существуют только для поддержки одного илидва шаблона выходят из-под контроля.Нам нужен способ, чтобы элемент содержал реальную логику через язык сценариев, который мы изобретаем, или тот, который мы находим.
Мне интересно то, знает ли кто-нибудь язык сценариев, который имеет объектную литеральную запись, которая может заменить XMLдля разметки при одновременном предоставлении оцениваемого кода.Если нет, то на каком языке вы бы врезались в элемент для оценки динамических выражений?