Помощь в написании студенческих работ
Антистрессовый сервис

Описание логической структуры классов и функций приложения

РефератПомощь в написанииУзнать стоимостьмоей работы

Таблица профили и пользователи тесно связаны и в большинстве случаев выборка из таблицы пользователи не обходится без обращения ко второй таблице, и чтобы в одном запросе получать сразу весь набор необходимых данных был создан класс, наследующий все основные поля и методы классов 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 — отслеживает соответствие записи папок, присутствующих в БД и их физическое наличие на сервере.

Показать весь текст
Заполнить форму текущей работой