|
|
|
програмное изменение классов
|
|||
|---|---|---|---|
|
#18+
всем привет, коллеги, мне нужно решить такую задачу. Имею проект, в котором часть класов (порядка 500) генерируются из xml schema (xsd файлы). Клиент получил новую версию schema и классы я тоже сгенерировал. Тоже порядка 500 классов. Разницу в каждом классе я определяю при помощи интроспекции. Разница как правило заключается в наличии (отсутствии) внутренних переменных, расширения других классов и интерфейсов. Т.е. мне надо новые классы дополнить недостающими полями (и желательно get/set методами) и при необходимости расширить их классами и интерфейсами. Существует ли фрэймворк для модификации классов ? спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.05.2015, 11:52 |
|
||
|
програмное изменение классов
|
|||
|---|---|---|---|
|
#18+
Вагон и маленькая тележка. Например ASM. Но подход у вас более чем странный. Вы создаёте какое-то переусложнение на ровном месте. Годогенерация сама по себе зло. Но если её не избежать, то не стоит вносить ручные изменения в генеренный код. Его нужно модифицировать обертками или другими средствами, но так чтобы при обновлении схемы, всегда можно было полностью всё перегенерировать и не потеряв изменений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.05.2015, 12:01 |
|
||
|
програмное изменение классов
|
|||
|---|---|---|---|
|
#18+
kadetвсем привет, коллеги, мне нужно решить такую задачу. Имею проект, в котором часть класов (порядка 500) генерируются из xml schema (xsd файлы). Клиент получил новую версию schema и классы я тоже сгенерировал. Тоже порядка 500 классов. Разницу в каждом классе я определяю при помощи интроспекции. Разница как правило заключается в наличии (отсутствии) внутренних переменных, расширения других классов и интерфейсов. А зачем? Если автоматом генерятся... Ну и пусть их. Единственное где нужны будут исправления. это там где используются данные классы. kadetТ.е. мне надо новые классы дополнить недостающими полями (и желательно get/set методами) и при необходимости расширить их классами и интерфейсами. Существует ли фрэймворк для модификации классов ? спасибо А наследование не поможет? Создаете класс, который является наследником нагенеренного, добавляете туда нужные атрибуты и методы. Тогда ваши "добавленные" атрибуты и методы при перегенерации никуда не денутся. Если не изменят названия нагенерированных классов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2015, 07:18 |
|
||
|
програмное изменение классов
|
|||
|---|---|---|---|
|
#18+
BlazkowiczВагон и маленькая тележка. Например ASM. Но подход у вас более чем странный. Вы создаёте какое-то переусложнение на ровном месте. Годогенерация сама по себе зло. Но если её не избежать, то не стоит вносить ручные изменения в генеренный код. Его нужно модифицировать обертками или другими средствами, но так чтобы при обновлении схемы, всегда можно было полностью всё перегенерировать и не потеряв изменений. спасибо за ответ. Я думал facade использовать для этого, но у меня опыта нет. Вы не могли бы привести пример реализации ? PS я подвесил файл Abs.java, в который находятся два класса. Один текущий, а в хвост подвесил вновь сгенерированный Abs.java. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2015, 15:11 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38970892&tid=2125354]: |
0ms |
get settings: |
9ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
33ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
| others: | 219ms |
| total: | 351ms |

| 0 / 0 |
