Image

MPS/generator/templates/weavig rules

Разбираюсь с MPS,
Первый язык делал так, что формат сгенеренных java классов был неважен.
Лишь бы работало. В итоге получал набор классов, плюс некий огромный класс, который все классы объединяет в одну систему.

Теперь новая задача - на выходе получить класс с нужной мне структурой - реализацию абстрактного класса, который уже есть в библиотеке.
Класс содержит набор полей, конструктор, который получает значения этих полей, плюс набор геттеров/сеттерв (те же поля), плюс метод который работает с данными полями - упаковывает их в нужный формат, опять же в последовательности полей.

получается что мне нужно создать темплейт который содержит один темплейт-фрагмент поля, фрагмент аргумента конструктора, фрагмент геттера, и сеттер и фрагмент метода (упаковщика).
проходя по нодам, описанным в модели, я должен к базовому темплейту класса, добавить темплейт, описывающий добавляемые элементы для отдельного поля, и в итоге получить класс с набром нужных полей, аргументов, геттеров/сеттеров.

порывшись в исходниках предположил что для этого используется weaving rule в mapping configuration.
там есть
1. query для нодов (это понятно - список нужных полей, и уже работать с этим списком - штамповать темплейты) - либо я ошибаюсь?
2. ссылка на темплейт - ну это тоже поянтно, темлейт для полей/аргументов/геттеров-сеттереров.... каждый получает parentNode то самое поле, берет имя, данные и заполняет поля и аргументы.
3. и некий context - вот это совершенно не понятно, порывшись в исходниках, увидел работу с некой утилитой JavaModelUtil которая ищет нужный билдер для нода.

вопрос - кто знает как работать с weaving rules? просто очень интересно :) или weaving rules предназначены для другого и я не там рою?
реально первый язык который сделал, позволил действительно упростить систему. хочется теперь воспользоваться всей мощью MPS, но не хватает информации.