166 implement atomization of thecomposite model
Created by: MAGLeb
https://github.com/nccr-itmo/FEDOT/issues/166
Нужно реализовать класс обертку(Chain_model) для цепочки(Chain), который будет представлять из себя обычную модель и имел тот же самый функционал что и обычная модель(Model).
После добавить возможность конвертировать Chain_model в JSON.
19.11 UPDATE
Чтобы лучше понимать код, который реализован в нескольких классах для импортирования и экспортирования цепочек в JSON и обратно, решил немного расписать логику работы. В том числе вместе с новым классом AtomizedModel.
При экспорте мы рекурсивно проходимся по цепочке и создаем её шаблон (ChainTemplate) + все вложенные модели в цепочке мы тоже конвертируем в ModelTemplate, AtomizedModelTemplate для обычным моделей и атоминизированных моделей (AtomizedModel) соответственно. После того как мы создали цепочку из шаблонов мы переходим к преобразованию этого шаблона в JSON. Логика для импорта аналогичная. Сначала парсим JSON в шаблоны, облегченные классы, после шаблоны переводим в цепочку (Chain) и модели (Model).
Также добавил абстрактный класс, интерфейс для двух подклассов ModelTemplate and AtomizedModelTemplate. Для того чтобы реализовать для атомизированной цепочки функционал как для обычной модели.