-
Notifications
You must be signed in to change notification settings - Fork 1
Взаимодействие TransportKP и UserKP
Kirill Ivashov edited this page Dec 24, 2015
·
15 revisions
Публикуется клиентом один раз Содержит свойства
- hasRoute - Route
- tspType - string. Тип маршрута open/closed.
- hasPoint. Содержит точки (Point) для построение по ним маршрута (кроме начальной точки, она совпадает с положением пользователя (???))
- hasMovement. Результат работы TransportKP — перемещения между точками
- hasStartMovement. Первый Movement
- processed - свойство обновляется TransportKP при обновлении маршрута.
- updated - свойство обновляемое UserKP для уведомления о том, что содержимое запроса (hasPoints) изменилось.
- provides - Schedule. Пока каждый UserKP может создать только один Schedule (нужно ли больше?)
- hasLocation - Location. Местоположение пользователя.
- Ищет в smartspace'е User'а со своим id, если не найдено — создает
- Ищет в smartspace'е свой Schedule'е, если найдено, подписывается (см. далее), если не найдено — ничего не создает.
- При получении новых координат публикует новый объект Location
- Обновляет свойство hasLocation у своего объекта User
- Старый Location не удаляет, т.к. на него может ссылаться SearchRequest
Подписывается на свойство processed объекта Route.
Отписывается от свойства processed объекта Route Удаляет из SIB'а созданные ранее объекты Schedule, Route и User.
Подписывается на изменение свойства updated у класса Route. При получении обновления:
- Получает объект Route, у которого изменилось updated.
- Получает Schedule, которому соответствует измененный Route (через tempalte-запрос).
- Получает User, которому соответствует полученный на п. 2 Route (через template-запрос).
- Получает Point'ы, Location'ы, tspType'ы и т.п. из вышеперечисленных классов
- Передает все что выше в Java-код.
- Ищет/добавляет в кэш-е полученного User'а и его текущее состояние.
- Передает все данные из smartspace'е в процедуру обновления состояния (состояние может быть пустым, процедура обновления должна обновить при необходимости или создать маршрут).