Описание логической структуры классов и функций приложения
Таблица профили и пользователи тесно связаны и в большинстве случаев выборка из таблицы пользователи не обходится без обращения ко второй таблице, и чтобы в одном запросе получать сразу весь набор необходимых данных был создан класс, наследующий все основные поля и методы классов Users и Profiles — UsersProfile. Получение файла от пользователя потребовало создание класса, который бы анализировал… Читать ещё >
Описание логической структуры классов и функций приложения (реферат, курсовая, диплом, контрольная)
Описание обслуживающих классов
Для отображения реалиционной базы данных в объектно-ориентированную используется технология Hibernate, а значит необходимо создать ряд классов для отображения данных таблицы в эти классы:
— таблица «пользователи» — класс Users:
Поля: id, id_prof, mail, statistics, photo, reg_date, block, password, login;
Методы: конструктор по умолчанию; «геттеры» и «сеттеры полей»;
— таблица «профили» — класс Profile:
Поля: id, name, red_users, red_news, red_files, red_desing;
Методы: конструктор по умолчанию; «геттеры» и «сеттеры полей»;
— таблица «новости» — класс News:
Поля: id, author_id, add_date, head, text, show_new;
Методы: конструктор по умолчанию; «геттеры» и «сеттеры полей»;
— таблица «каталоги» — класс Types:
Поля: id, id_next, title;
Методы: конструктор по умолчанию; «геттеры» и «сеттеры полей»;
— таблица «файлы» — класс Files:
Поля: id, id_user, id_type, file_name, description, is_local;
Методы: конструктор по умолчанию; «геттеры» и «сеттеры полей»;
— таблица «комментарии к файлам» — класс CommentsFiles:
Поля: id, id_user, id_file, text, add_date;
Методы: конструктор по умолчанию; «геттеры» и «сеттеры полей»;
— таблица «групповые чаты» — класс ChatRoom:
Поля: id, name, password, file, id_moderator;
Методы: конструктор по умолчанию; «геттеры» и «сеттеры полей»;
— таблица «связь пользователь-чат» — класс Users_chats:
Поля: id, id_user, id_chat, id_block;
Методы: конструктор по умолчанию; «геттеры» и «сеттеры полей»;
Таблица профили и пользователи тесно связаны и в большинстве случаев выборка из таблицы пользователи не обходится без обращения ко второй таблице, и чтобы в одном запросе получать сразу весь набор необходимых данных был создан класс, наследующий все основные поля и методы классов Users и Profiles — UsersProfile.
Соответственно были созданы конфигурационные файлы «мэпинга» — правила отражения объектов в записи таблиц, наделением их специализированными свойствами. Так же был создан конфигурационный файл для Hibernate.
- — hibernate.cfg — файл описывает используемый диалект, параметры подключения к базе данных (логин, пароль, имя базы, используемый драйвер), классы самого Hibernate и другое;
- — Users.hbm — файл отражения класса Users в таблицу «пользователи»;
- — Profile.hbm — файл отражения класса Profile в таблицу «профили»;
- — Types.hbm — файл отражения класса Types в таблицу «каталоги»;
- — News.hbm — файл отражения класса News в таблицу «новости»;
- — Files.hbm — файл отражения класса Files в таблицу «файлы»;
- — CommentsFiles.hbm — файл отражения класса CommentsFiles в таблицу «комментарии к файлам»;
- — ChatRoom.hbm — файл отражения класса ChatRoom в таблицу «групповые чаты»;
- — Users_chats.hbm — файл отражения класса Users_chats в таблицу «групповые чаты»;
HibernateUtil — класс, который будет осуществлять подключение к базе и возвращать сессии — единица работы с базой данных.
Поля: sessionFactory — сессия Hibernate;
Методы: buildSessionFactory — создание подключенияж Далее для удобного управления и манипулирования данными базы данных были созданы соответствующие классы-менеджеры, выполняющие основные запросы к базе и выдающие результат в форме объектов:
UsersManager.
Методы:
getHourlyUsers — получение всех данных из таблицы в виде списка объектов Users;
getByLoginPassword — получение пользователя из базы по его логину и паролю;
getByLogin — поиск пользователей с данным логином;
blockById — заблокировать пользователя с данным идентификатором;
changeProfile — меняет роль (профиль) пользователя на указанный;
getById — возвращает пользователя по идентификатору;
getHTTPbyID — возвращает данные пользователя по идентификатору в виде строки, содержащей HTML код и предназначенный для размещения на странице;
add — добавляет запись в таблицу, соответствующую объекту;
Update — обновляет запись в таблице, соответствующую объекту Users;
ProfileManager.
Методы:
getHourlyProfiles — получение всех данных из таблицы в виде списка объектов Profiles;
getProfilesById — получение роли из базы данных по идентификатору;
getHourlyProfilesInSelectTag — получение ролей из базы данных в виде строки, содержащий HTML код всплывающего списка ролей;
NewsManager.
Методы:
getHourlyNews — получение всех данных из таблицы в виде списка объектов News;
getHourlyCurrentNews — получение списка объектов News, которые отображаются на главной странице;
getHourlyOldNews — получение списка объектов News, которые не отображаются на главной странице;
add — добавляет запись в таблицу, соответствующую объекту News;
addByStrings — добавляет запись в таблицу, соответствующую объекту News, но в качестве входных параметров получает не объект, а строковые значения полей;
blockById — убирает с вывода на главную страницу;
TypesManager.
Методы:
getHourlyTypes — получение всех данных из таблицы в виде списка объектов Types;
getById — получение класса каталог по идентификатору;
getSubDir — получение в виде списка объектов каталога, находящихся в заданном;
add — добавляет запись в таблицу, соответствующую объекту;
Update — обновляет запись в таблице, соответствующую объекту Types;
Delete — удаляет запись из таблицы, соответствующую объекту Types;
FilesManager.
Методы:
getHourlyFiles — получение всех данных из таблицы в виде списка объектов Files;
getById — получение класса файл по идентификатору;
getById_type — получение списка объектов файл, содержащихся в каталоге с заданным идентификатором;
add — добавляет запись в таблицу, соответствующую объекту Files;
Update — обновляет запись в таблице, соответствующую объекту Files;
Delete — удаляет запись из таблицы, соответствующую объекту Files;
Search — выполняет поиск по базе данных файлов и ссылок, согласно полученным критериям, среди критериев существуют такие:
- — поиск лишь по определенным каталогам
- — искать ключевые слова лишь в названии
- — искать ключевые слова лишь в описании
- — искать везде
Получение файла от пользователя потребовало создание класса, который бы анализировал приходящий поток байтов, выполнял отделение заголовка от содержания файла, извлечение имени файла и записи его на сервер в соответствующий каталог:
SaveFile.
Поля:
header — информация не касающаяся содержания файла;
boundary — граница разделения полей внутри потока;
beginSliceIndex — начальный индекс содержания файла в потоке;
endSliceIndex; - конечный индекс содержания файла в потоке;
Методы:
extractData — извлечение массива байтов содержания файла;
getBoundary — получение границы разделения полей;
getFileName — выделение имени файла в заголовке;
CommentsFilesManager.
Методы:
getById — получение класс комментарий файла по идентификатору;
getByIdFile — получение класс комментарий файла по идентификатору файла, к которому первый добавлен;
add — добавляет запись в таблицу, соответствующую объекту CommentsFiles;
addByStringsдобавляет запись в таблицу, соответствующую объекту CommentsFiles, но в качестве входных параметров получает не объект, а строковые значения полей;
Update — обновляет запись в таблице, соответствующую объекту CommentsFiles;
Delete — удаляет запись из таблицы, соответствующую объекту CommentsFiles;
ChatRoomManager.
Методы:
getById — получение класс групповой чат по идентификатору;
add — добавляет запись в таблицу, соответствующую объекту ChatRoom;
Update — обновляет запись в таблице, соответствующую объекту ChatRoom;
Delete — удаляет запись из таблицы, соответствующую объекту ChatRoom;
GetChatFile — возвращает файл, ассоциированный с данным чатом, для заполнения разговора для вновь присоединившихся пользователей;
CheckPassword — проверяет соответствует ли введенный пользователем пароль тому, что установлен для данного чата по соответствующему идентификатору;
ModeratorCommand — анализатор команд, посланных модератором или другим пользователем чата, и вызов соответствующих команд для их выполнения, так же выполняет проверку на права выполнения данных команд;
BlockUSer — блокирует пользователя по нику (каждому в соответствие ставится его идентификатор);
SendPrivate — отправка индивидуального сообщения выбранному пользователю;
ClearFile — выполняет чистку файла при превышении им 300 кб.
UsersСhatsManager.
Методы:
getByIdUser — получение списка классов группового чата, к которым подключен пользователь по идентификатору пользователя;
getByIdChat — получение списка классов пользователей, которые подключены к данному чату по идентификатору чата;
add — добавляет запись в таблицу, соответствующую объекту Users_Chats;
Update — обновляет запись в таблице, соответствующую объекту Users_Chats;
Delete — удаляет запись из таблицы, соответствующую объекту Users_Chats;
BlockUser — блокирует пользователя для данного чата по идентификатору пользователя и чата;
ValidationManager.
Класс, занимающейся проверкой корректности данных во всем проекте.
Методы:
checkLogOnName — проверяет указанное имя пользователя на уникальность;
checkEmail — проверяет указанный пользователем e-mail на наличие синтаксических ошибок;
checkFileName — проверяет имя файла на наличие недопустимых символов.
checkLink — проверяет введенные пользователем ссылки на наличие синтаксических ошибок — чтобы они соответствовали ссылкам на файлы.
checkFolders — отслеживает соответствие записи папок, присутствующих в БД и их физическое наличие на сервере.