diff --git a/pom.xml b/pom.xml
index b739b42..513bf4c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
> extends LoadableDetachableModel ) model).load());
+ return models;
+ }
+
+ public boolean isEmpty() {
+ return models.isEmpty();
+ }
+
+ public void detach() {
+ models.forEach(IModel::detach);
+ }
+
+ /**
+ * Добавление модели.
+ */
+ public void add(IModel model) {
+ models.add(model);
+ }
+
+ /**
+ * Оборачивание элемента в модель и добавление в коллецию.
+ */
+ public void add(P object) {
+ models.add(new HibernateModel<>(object));
+ }
+
+ /**
+ * Оборачивание элементов коллекции в модели и добавление в коллецию.
+ *
+ * @param items коллекция элементов.
+ */
+ public void addAll(Collection items) {
+ items.forEach(this::add);
+ }
+
+ /**
+ * Оборачивание элементов коллекции в модели и добавление в текущую коллекцию.
+ *
+ * @param objects исходная коллекция.
+ */
+ public void wrapAndSet(Collection objects) {
+ models.clear();
+ objects.stream()
+ .map(HibernateModel::new)
+ .map(hm -> (IModel ) hm)
+ .forEach(models::add);
+ }
+
+ /**
+ * Удаление модели из коллекции.
+ */
+ public void remove(IModel model) {
+ models.remove(model);
+ }
+
+ /**
+ * Очистка коллекции моделей.
+ */
+ public void clear() {
+ models.clear();
+ }
+
+ /**
+ * Фильтрация списка модклей.
+ */
+ public Collection predicate, Supplier getElementsStream() {
+ return models.stream()
+ .map(IModel::getObject);
+ }
+
+ /**
+ * Проверка наличия модели в коллекции.
+ */
+ public boolean containsModel(IModel model) {
+ return models.contains(model);
+ }
+
+ /**
+ * Проверка наличия объекта в коллекции.
+ */
+ public boolean containsModelObject(P object) {
+ return !unwrapAndFilter(item -> item.equals(object), HashSet::new).isEmpty();
+ }
+
+ /**
+ * Получение итератора коллеции моделей.
+ */
+ public Iterator predicate, Supplier