Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

note

.pdf
Скачиваний:
6
Добавлен:
07.03.2015
Размер:
1.91 Mб
Скачать

41 КП-02068195-341-07-14

void setEmail(java.lang.String email) - Задание электронного адреса делового партнера.

void setFamilyName(java.lang.String familyName) - Задание фамилии делового партнера.

void setFirstName(java.lang.String fname) - Задание имени делового партнера.

void setOrganization(java.lang.String org) - Задание организации, которой принадлежит деловой партнер.

3.9.1.4 acquaintance.IAOutMessage

Интерфейс IAOutMessage представляет исходящие сообщения от компании к различным

деловым партнерам.

Методы интерфейса:

IAContact getContact() - Получение делового партнера для этого исходящего сообщения.

java.sql.Date getCreationDate() - Получение даты создания исходящего сообщения.

IAEmployee getCreatorEmployee() - Извлечение служащего, который первоначально создал это исходящее сообщение.

int getMessagelD() - Получение идентификатора исходящего сообщения.

String getMessageText() - Получение содержимого исходящего сообщения.

IAEmployee getSenderEmployee() - Извлечение служащего, который отвечает за передачу этого исходящего сообщения.

java.sql.Date getSentDate() - Получение даты передачи этого исходящего сообщения.

java.lang.String getSubject() - Получение темы исходящего сообщения.

 

void

setContact(IAContact contact) - Задание делового партнера для данного исходящего

сообщения.

 

 

void

setCreationDate(java.sql.Date date) - Задание даты создания этого исходящего

сообщения.

 

void setCreatorEmployee(IAEmployee emp) - Задание служащего, который создает это сообщение.

void setMessagelD(int id) - Задание идентификатора исходящего сообщения.

void setMessageText(java.lang.String text) - Задание текста исходящего сообщения.

void setSenderEmployee(IAEmployee emp) - Задание служащего, который отвечает за передачу этого исходящего сообщения.

void setSentDate(java.sql.Date date) - Задание даты передачи этого сообщения.

void setSubject(java.lang.String subject) - Задание темы исходящего сообщения.

3.9.1.5 presentation.PMain

Класс PMain (основной).

42 КП-02068195-341-07-14

Методы класса:

PMain() - Конструирует объект PMain в начале работы приложения.

void main(java.lang.String[] args) - Основной метод - начало работы приложения.

3.9.1.6 presentation.PСоnsоlе

Класс PСоnsоlе (консоль) представляет консольное окно, которое итерация 1 предоставляет

пользователю, чтобы взаимодействовать с приложением.

 

Методы класса:

 

 

 

PConsole () - Создание

нового

консольного

объекта.

 

PConsole(CActioner

actioner)

- Создание

нового консольного объекта для заданного

исполнителя.

 

 

 

 

 

void

display(java.lang.String

s) - Отображение строки на экране.

 

void

displayConfirmation() - Сообщение по электронной почте успешно передано,

информирование об этом

пользователя.

 

void displayEmailFailure(java.lang.String msg) - Неудачная попытка передачи сообщения по электронной почте.

void displayLogin() - Отображение экрана для ввода регистрационного имени и организация цикла, пока пользователь правильно введет это имя или пока не будет превышено допустимое число попыток.

boolean displayLoginError(java.lang.Object status) - Информирование пользователя о неправильном вводе регистрационного имени.

 

void

displayMenu() - Отображение главного меню приложения.

 

void

displayMessages(Java.util.Collection msgs, boolean detail) – Ото-бражение сведений

об исходящем сообщении на экран и, если переменная detail установлена, выводится также и тело исходящего сообщения.

void displayMessageText(java.lang.String input) - Отображение содержимого

исходящего сообщения.

java.lang.Object getUserInput(java.lang.String[] prompts) - Получение входной информации от пользователя в соответствии с текущим состоянием программы.

boolean prepareMessage(java.lang.String msgID) - Подготовка исходящего сообщения,

заданного своим MsgID, для отправки.

java.lang.String readlnput() - Чтение входной строки.

void tooManyMessages(int num) - Сообщение, что имеется слишком много исходящих сообщений, чтобы их можно было вывести на экран. Не все они извлечены из БД.

void viewMessages() - Просмотр списка непосланных сообщений.

43 КП-02068195-341-07-14

 

Поля класса:

 

 

BufferedReader

in;

 

PrintStream

out;

String VIEW_MESSAGE = "1";

String VIEWJTEXT_MESSAGE = "2";

String SEND_MESSAGE = "3";

String QUIT = "4";

int LOGIN_STATE = 1 - Запрос информации о регистрационном имени.

int NORMAL_STATE = 2 - Отображение меню и запрос выбора пользователя.

int state - Состояние, в котором мы находимся.

CActioner actioner - Ассоциация со слоем control.

3.9.1.7 control.CActioner

Класс CActioner (исполнитель) инкапсулирует все операции, известные в итерации 1.

Методы класса:

CActioner() - Создание нового объекта класса CActioner.

CActioner(MBroker broker) - Создание нового объекта класса CActioner с заданием объекта класса MBroker.

void exit() - Завершение приложения.

IAEmployee getEmployee() - Извлечение текущего зарегистрированного служащего.

void handleEmailException(java.lang.Exception exc)

java.lang.Object login (java.lang.String username, java.lang.String passwd) - Регистрация пользователя с заданными пользовательским именем и паролем.

void logout() - Удаление пользователя без завершения приложения.

IAOutMessage retrieveMessage(int id) - Извлечение исходящего сообщения по его идентификатору.

int retrieveMessages(java.util.Collection msgs, int numMsgs) - Извлечение numMsgs

непосланных исходящих сообщений в msgs (список сообщений).

boolean

send(java.lang.String from,

java.lang.String to, java.lang.String

subject,

java.lang.String body) - Послать сообщение.

boolean sendMessage(IAOutMessage msg) - Послать сообщение и скорректировать БД в случае успешной передачи.

boolean sendMessage(IAOutMessage msg, java.lang.String from, java.lang.String to, java.lang.String subject, java.lang.String body) - Послать сообщение и скорректировать его в случае успешной передачи.

44 КП-02068195-341-07-14

Поля класса:

Object LOGINJDK = "LOGIN OK" - Регистрационное имя правильное;

Object LOGIN_FAIL_1 = "LOGIN FAIL 1" - Первая попытка при неправильном регистрационном имени;

Object LOGIN_FAIL_2 = "LOGIN FAIL 2" - Вторая попытка при неправильном регистрационном имени;

Object LOGIN_FAIL_3 = "LOGIN FAIL 3" - Заключительная попытка при неправильном регистрационном имени;

int MAX_LOGIN__TRY = 3 - Разрешено максимальное число попыток неправильного ввода регистрационного имени перед завершением программы;

MBroker broker - Ассоциация с посредником;

IAEmployee emp - Единственный объект EEmployee, который мы имеем;

int loginTry = 0 - Пока выполняются попытки ввести регистрационное имя;

3.9.1.8 domain.entity.IEDataSupplier

Интерфейс IEDataSupplier (источник данных) отвечает за предоставление данных объектам-

сущностям и за обеспечение для них возможности поддерживать связи ассоциации друг с другом.

В результате этого объекты-сущности, находясь в кэше памяти, представляют точный снимок подмножества состояния БД. Интерфейс IEDataSupplier обеспечивает также разъединение пакетов entity и mediator, чтобы устранить циклическую зависимость. Интерфейс реализован классом MBroker из пакета mediator и используется всеми тремя классами пакета entity.

Методы интерфейса:

 

IAContact

getContact(int contactOID) - He может использоваться извне,

только для

классов пакета entity.

 

 

 

 

 

 

 

IAEmployee

getEmployee(int

empOID) - He может использоваться извне,

только для

классов пакета entity.

 

 

 

 

 

 

 

int

retrieveUnsentMessages(IAContact

contact,

java.util.Collection

msgs,

int

numMsgRetrieve) - Извлечение числа numMsgRetrieve (число извлеченных сообщений)

исходящих

сообщений

для

конкретного contact

(деловой партнер) и размещение их в коллекции msgs

(сообщения).

 

 

 

 

 

 

 

 

 

int

retrieveUnsentMessages(IAEmployee

emp,

java.util.Collection

msgs,

int

numMsgRetrieve) - Извлечение числа numMsgRetrieve исходящих сообщений для конкретного emp и размещение их в коллекции msgs.

45 КП-02068195-341-07-14

3.9.1.9 domain.entity.EContact

Класс EContact (партнер) поддерживает связи ассоциации ко всем исходящим сообщениям

(объекты EOutMessage), адресованным ему и загруженным в настоящее время в память.

Класс EContact реализует интерфейс acquaintance.IAContact (партнёр).

 

Поля класса:

 

 

java.lang.String

contactID

 

java.lang.String

email

 

java.lang.String

familyName

 

java.lang.String

firstName

 

java.util.Collection

msgs

 

int

OID

 

java.lang.String

organization

IEDataSupplier ref

Методы класса:

 

EContact(IEDataSupplier ref) - Простой конструктор, используемый по

умолчанию.

 

java.util.Collection

getUnsentOutMessages(int

numMsgToBeRetrieved) -

Получение всех

сообщений, предназначенных для данного партнера.

 

 

 

void

removeSentOutMessage(IAOutMessage

msg) - Удаление

сообщения,

предназначенного для

данного партнера, по-видимому, из-за того, что оно уже послано.

3.9.1.10 domain.entity.Eemployee

Класс Eemployee (служащий) поддерживает связи ассоциации ко всем исходящим сообщениям (объекты EOutMessage — класс «исходящее сообщение» пакета entity), назначенным ему и в текущий момент загруженным в память.

Объект-клиент может извлечь исходящие сообщения в соответствии с различными критериями, такими как запрос объекта EEmployee относительно его исходящих сообщений,

запрос объекта EContact для определения адресованных к нему исходящих со-общений или запрос объекта MBroker для нахождения требуемых исходящих сообщений.

Класс Eemployee реализует интерфейс acquaintance.IAEmployee.

 

Поля класса:

 

 

java.lang.String

email

 

java.lang.String

employeelD

 

java.lang.String

familyName

 

java.lang.String

firstName

 

java.lang.String

loginName

46 КП-02068195-341-07-14

 

java.util.Collection

msgs

 

int

OID

IEDataSupplier ref

Методы класса:

EEmployee(IEDataSupplier ref) - Простой конструктор, используемый по умолчанию.

Java.util.Collection getUnsentOutMessages(int maxMsgsRetrieve) - Получение всех

сообщений (вплоть до numMsgRetrieve – число извлекаемых сообщений), предназначенных данному служащему.

void removeSentOutMessage(IAOutMessage msg) - Удаление сообщения из этого списка

для служащего, по-видимому, из-за того, что оно уже послано.

3.9.1.11 domain.entity.EOutMessage

Класс EOutMessage (исходящее сообщение) реализует интерфейс acquaintance.IAOutMessage.

Каждый объект EOutMessage поддерживает связи ассоциации с EEmployee и EContact, если эти объекты в настоящее время загружены в память.

В итерации 1 служащий, который создает исходящее сообщение (creator_emp_id —

идентификатор служащего-создателя в таблице OutMessage), также отвечает и за передачу по электронной почте этого исходящего сообщения. После передачи сообщения столбцы sender_emp_id (идентификатор служащего-отправителя) и date_emailed (дата отправки сообщения по электронной почте) в таблице OutMessage обновляются.

 

Поля класса:

 

 

IAContact

contact

 

int

contactOID

 

java.sql.Date

creationDate

 

IAEmployee

creator

 

int

creatorOID

 

int

messagelD

 

java.lang.String messageText

 

int

OID

 

IEDataSupplier ref

 

IAEmployee

sender

 

int

senderOID

 

java.sql.Date

sentDate

java.lang.String subject

Методы класса:

47 КП-02068195-341-07-14

EOutMessage(IEDataSupplier ref) - Простой конструктор, используемый по умолчанию.

IAContact getContact() - Получение делового партнера для этого сообщения.

IAEmployee getCreatorEmployee() - Извлечение сотрудника, кто первоначально создал это сообщение.

IAEmployee getSenderEmployee() - Извлечение сотрудника, который уполномочен послать сообщение.

 

void

setContact(IAContact contact) - Позволяет задать делового партнера.

 

 

void

setCreatorEmployee(IAEmployee emp) - Задание сотрудника, который

создает

сообщение.

void setSenderEmployee(IAEmployee emp) - Задание сотрудника, который уполномочен

отправить сообщение.

3.9.1.12 domain.mediator.MBroker

Класс MBroker (посредник) соединяет и разделяет три пакета (control, entity и foundation),

чтобы ликвидировать неприятные зависимости. MBroker осведомлен об объектах пакета entity, в

настоящее время находящихся в кэше памяти. Он отвечает за извлечение данных из результатов

SQL-запросов (уровня foundation) и за поддержание основной логики создания компонентов пакета entity. MBroker управляет передачей данных строк таблиц (результатов запроса) в объекты пакета entity и наоборот.

Класс MBroker реализует интерфейс acquaintance.IAConstants (константы).

 

Поля класса:

 

 

FConnection

connection - Связь, используемая читающим/записывающим объектом.

 

java.util.Map

contacts - Кэш деловых партнеров.

 

boolean

dirty - Вызывает необходимость повторного извлечения кэша.

 

оava.util.Map

emps - Кэш сотрудников.

 

java.util.Map

msgs - Кэш сообщений.

 

FReader

reader - Объект чтения БД.

 

int

remainder - Количество сообщений, оставшихся в БД.

FWriter writer - Объект записи в БД.

Методы класса:

MBroker() - Конструктор посредника.

 

MBroker(FConnection

connection) - Создание нового брокера с конкретной связью.

 

IAContact

createContact() - Создание нового объекта делового партнера.

 

IAEmployee

createEmployee() - Создание нового объекта сотрудника.

 

IAOutMessage

createOutMessage() - Создание нового объекта исходящего сообщения.

48 КП-02068195-341-07-14

 

java.util.Collection

doRetrieveMessagesAndContacts(IAContact contact, int

numMsgs) -

Выполнение извлечения исходящих сообщений из БД.

 

 

 

 

IAOutMessage

doRetrieveUnsentMessageAndContact (IAEmployee

em,

int msgID) -

Выполнение извлечения сообщения с конкретным msgID непосредственно из

БД.

 

 

java.util.Collection doRetrieveUnsentMessagesAndContacts(IAEmployee emp, int numMsgs) -

Выполнение извлечения непосланных исходящих сообщений из

БД.

 

 

 

void

flagCachef()

- Изменение флага, указывающего,

является ли

кэш

пакета entity

«измененным».

 

 

 

 

 

 

 

IAContact

getContact(int

contactOID) - Извне не используется, только для классов

пакета entity.

 

 

 

 

 

 

 

 

IAEmployee

getEmployee(int

empOID) - Извне не используется, только для классов пакета

entity.

 

 

 

 

 

 

 

 

int

getOID(java.lang.Object

o) - Создание идентификатора объекта для заданного

объекта.

 

 

 

 

 

 

 

IAOutMessage getOutMessageFromCache(int msgID) - Удаление исходящего сообщения из кэша, если такое уже там есть.

boolean isDirty() - Находится ли флаг кэша в состоянии «измененный»?

boolean isInCache(java.lang.Integer msgID) - Находится ли исходящее сообщение уже в кэше?

IAEmployee login(java.lang.String username, java.lang.String passwd) - Получение регистрационного имени и возвращение деталей служащего.

void logout() - Отмена регистрации пользователя, очистка всех связей.

 

IAContact

mapContact(java.sql.ResultSet

rs) -

Размещение

строки

данных

о

деловом партнере

в EContact.

 

 

 

 

 

 

IAEmployee

mapEmployee(java.sql.ResultSet

rs)

- Размещение строки

данных

о

сотруднике в EEmployee.

 

 

 

 

 

 

IAOutMessage

mapOutMessage(java.sql.ResultSet

rs) - Размещение строки данных об

исходящем сообщении в EOutMessage.

 

 

 

 

 

java.util.Collection mapOutMessages(java.sql.ResultSet rs, int numRetrieve) - Извлечение только numRetrieve сообщений из результирующего набора.

void retrieveContacts(java.util.Collection msgs) - Извлечение деловых партнеров для данных сообщений.

IAOutMessage retrieveUnsentMessage(IAEmployee emp, int msgID) - Извлечение одного сообщения либо из кэша, либо непосредственно из БД.

49 КП-02068195-341-07-14

int retrieveUnsentMessages(IAEmployee emp, java.util.Collection msgs, int numMsgs) -

Извлечение недосланных исходящих сообщений из кэша или БД.

boolean updateMessage(int msgID) - Индикация, что сообщение было послано.

3.9.1.13 foundation.FConnection

Класс FConnection (соединение) выполняет типичные задачи по установлению соединения с БД. Он использует возможности классов FReader и FWriter (пакета foundation), чтобы соответственно выполнить поиск в БД или модифицировать ее.

 

Поля класса:

 

 

java.sql.Connection

conn

 

java.lang.String

dbDriver

 

java.lang.String

dbUrl

 

Freader

reader

 

FWriter

writer

 

Методы класса:

 

FConnection (java.lang.String driver, java.lang.String dbUrl) - Конструирование нового объекта FConnection.

void close() - Закрыть соединение.

boolean connect(java.lang.String username, java.lang.String passwd) - Получить соединение с БД, используя данные username и passwd. Если связь успешно установлена, но существует старая связь, старая связь будет закрыта и заменена новой связью.

FReader getReader() - Установить реализацию чтения по умолчанию, поддерживаемую этим соединением.

FWriter getWriter() - Установить реализацию записи по умолчанию, поддерживаемую этим соединением.

boolean isConnected() - Установлено ли соединение с БД?

3.9.1.14 foundation.FReader

Класс FReader (чтение) отвечает за выполнение строк SQL-запросов, возвращение множества результатов клиенту и зачистку множества результатов после того, как они были

обработаны.

 

 

 

Методы класса:

 

 

FReader(java.sql.Connection conn)

- Создание объекта FReader для представленного

соединения.

 

 

 

void

closeResult(java.sql.ResultSet

rs) - MBroker вызывает этот метод после передачи

множества результатов.

50 КП-02068195-341-07-14

 

java.sql.ResultSet

query(java.lang.String

sql) - Запрос к БД на основе строки

SQL.

 

void

setConnection(java.sql.Connection

conn) - Изменение соединения для

этого

объекта.

3.9.1.15 foundation.FWriter

Класс FWriter (запись) ответствен за выполнение строки корректировки SQL, переданной ему объектом MBroker, и зачистку множества результатов после того, как они были обработаны.

Методы класса:

FWriter(Java.sql.Connection conn) - Создание объекта FWriter, который записывает все изменения и новые данные с помощью переданного соединения.

void closeStatement(java.sql.PreparedStatement st)

void

setConnection(java.sql.Connection conn) - Изменение соединения для этой

записи.

 

java.sql.PreparedStatement update(java.lang.String sql)

3.9.2Диаграмма классов

Диаграмма классов первой итерации приведена на Рис. 3.6.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]