Проблема с наследованием MapperTopic
У меня есть плагин, который, в том числе, наследует ModuleTopic_MapperTopic… Так вот, поскольку XText переопределяет, например, метод UpdateTopic вусмерть, без всякого вызова методов родительских классов, весь функционал летит к чертям… Как-то совсем «не айс».
Так вот, вопрос… Есть ли возможность как-то это дело обойти без острых углов? Пробовал наследовать от PluginXtext_ModuleXtext_MapperTopic… Не особо помогает. Т.е. полностью игнорирует такое наследование. Да и вообще — не выход. Ведь еще могут быть плагины, использующие наследование мэппера…
Так вот, вопрос… Есть ли возможность как-то это дело обойти без острых углов? Пробовал наследовать от PluginXtext_ModuleXtext_MapperTopic… Не особо помогает. Т.е. полностью игнорирует такое наследование. Да и вообще — не выход. Ведь еще могут быть плагины, использующие наследование мэппера…
12 комментариев
1. xtext поставить первым в списке плагинов
2. написать мега-магический код в энтити топика, который бы дергал debug backtrace и смотрел бы есть ли в цепочке вызовов MapperTopic и тогда геттеры отдавали бы для именно этой цепочки текст с необработанными entity-тегами.
1 — быстрый костыль
2 — сложная магия, но универсальная, при этом можно было бы обойтись вообще без переопределения мапперов
Честно говоря вообще не понял необходимости так жестоко поступать — в смысле совсем переопределять — функционал движка. Это же вообще, можно сказать, краеугольный камень. Такие вещи, по-моему, совсем нельзя делать… Или делать опционально через конфиг. Ведь, насколько я понимаю, особой необходимости в этом не было, кроме как использовать именно ваш функционал работы с БД.
Но… Неужели ничего нельзя было придумать, без нарушения цепочки наследования? Ну… Например своему переопределенному EntityTopic придумать какой-нибудь флаг, при котором в переопределенном, например, getText() берется не родительский getText(), а вызывается getXtextTextRaw()? И перед вызовом родительского Update() устанавливать это флаг?
щас пробую замутить магию с debug_backtace
«Any sufficiently advanced technology is indistinguishable from magic» © :))
я же писал Т.е. у меня есть плагин, который переопределяет метод Update стандартного MapperTopic. Так, как вы НЕ вызываете родительский Update, то и мой Update НЕ вызывается. Вот в чем проблема, а не в не/обработанных текстах…