Доброго Вам времени суток.
Один товарищ посоветовал написать на RSDN про библиотечку, которую я недавно написал. Здоровая и не очень критика ей не помешает.
Библиотека позволяет из неких простых исходных данных соорудить по заданному плану необходимую структуру данных. Или, если смотреть на это с другой стороны, позволяет десериализовать данные.
Может кто-то решит что это — велосипед. Может он и будет прав. Но я пока не нашел аналогов. Обычно подобный софт отличается следующими чертами:
хранит данные в XML или чем-то подобном по нечитабельности
заставляет пользоваться кривыми паттернами вида "создать объект через пустой конструктор а потом сеттерами выставить его состояние"
предлагает свои классы для представления структуры данных или генерацию новых по какому-то шаблону
Мой вариант отличается следующими особенностями:
используются те классы, которые уже есть в программе
поддерживаются циклические зависимости (настолько, насколько это возможно)
форма данных отделяется от их представления
исходные данные могут быть в чем-то простом типа CSV, Java .properties или JSON. Главное, чтобы это приводилось в конце-концов к строчкам и спискам строчек и других списков.
Библиотека, конечно, не предназначена для работы с крупными данными. Для них лучше подходит СУБД. Но а для мелочи вроде ничего..
WIKI с описанием библиотеки находится
здесь.
RD>Может кто-то решит что это — велосипед. Может он и будет прав. Но я пока не нашел аналогов. Обычно подобный софт отличается следующими чертами:
Хм. Юзаем ORM. Объектную модель Java отображает на реляционную схему. Или на xml. Или вообще куда хочешь. Сколько угодно сложную объектную модель на сколь угодно сложную реляционную схему. Отображение настраивается. Приватный пустой конструктор по умолчанию должен быть, но неудобств не испытываем. Геттеры-сеттеры не обязательны, ORM юзает рефлексию.
Гораздо интереснее реализация подобного средства для неуправляемых сред с отсутствием рефлексии типов

Если кому нужно — можем обсудить. Есть реализация такой штуки для C++ (Win32, VC, BC++B). По-моему получилось отличнейше. Внедрено, работает в нескольких проектах. ОТ программиста — минимум усилий. Гораздо меньше, чем даже для описания маппингов в ORM в Java
Adobe Hitler. Zip File!!! Zip File!!!
ЖМ>Хм. Юзаем ORM. Объектную модель Java отображает на реляционную схему. Или на xml. Или вообще куда хочешь. Сколько угодно сложную объектную модель на сколь угодно сложную реляционную схему. Отображение настраивается. Приватный пустой конструктор по умолчанию должен быть, но неудобств не испытываем. Геттеры-сеттеры не обязательны, ORM юзает рефлексию.
Как раз XML и базы данных я предпочитаю избегать если нет жесткой необходимости. Почему? Вот
здесь есть сравнение конфигурации на основе Snow с JSON и обычного Spring с обычной кучей XML. По-моему вариант с JSON нагляднее.
А что за реализацию ORM используете? И дружит ли она с представлениями данных, более наглядными чем XML?
Пустые конструкторы и инициализацию после создания объекта стараюсь избегать, т.к. класс хорош когда любой созданный экземпляр готов к работе. А если его надо еще потом "допиливать" и можно "недопилить" и получить проблемы, то зачем такой класс? К тому же, отсутствие кучи модификаций позволяет использовать final поля. Это тоже хорошо.
Конечно, случаи бывают разные и не всегда такой подход вообще возможен.