Przejdź do treści

Wyszukiwarka

Informacje ogólne

Wyszukiwarka składa się z 4 serwisów:

  • GraphBuilder
  • PathFinder
  • CourseSearch
  • CoursePartsProvider

GraphBuilder

  • Zajmuje sie tworzeniem grafu skierowanego na podstawie przekazanych do niego CoursePart's.
  • Graf składa się z obiektów Node, gdzie jeden Node odpowiada jednemu miejscu czyli obiektowi Place.
  • Graf przechowuje wszystkie zbudowane Node w strukturzeMap, gdzie Long odpowiada identyfikatorowi miejsca Place
  • Każdy Node przechowuje informacje o sąsiednich miejscach. Można je pobrać za pomocą metody getNearbyNodes
  • Każdy Node przechowuje informacje o CoursePart z których został stworzony. Dzięki temu możliwe, jest pobranie w dalszej części odpowiednich kursów, a także informacji o nich. Można je pobrać za pomocą metody getCoursePartsForPlace, gdzie jako argument należy podać identyfikator miejsca (destination).

PathFinder

  • Przeszukuje graf w celu znalezienia drogi między dwoma miejscami

CourseSearch

  • Zarządza budowanie oraz przeszukiwanie grafu
  • Tworzy CourseSearchResult

Przypadki testowe

W folderze z testami znajduje się package dataprovider, który zawiera klasy dostarczające danych na temat kursów

Package dataprovider.onecourse

Zawiera tylko jeden kurs o różnych ilościach CoursePart

1 przypadek - onecourse.OneCoursePart

2 przypadek - onecourse.TwoCourseParts

3 przypadek - onecourse.ThreeCourseParts


Package dataprovider.twocourses

Zawiera dwa kursy o różnych ilościach CoursePart oraz ścieżek, które można w nim znaleźć

4 przypadek - twocourses.OnePath

5 przypadek - twocourses.TwoPaths

6 przypadek - twocourses.OnePathTwoSameCourses

Package dataprovider.threecourses

Zawiera trzy kursy o różnych ilościach CoursePart oraz ścieżek, które można w nim znaleźć

7 przypadek - twocourses.TwoComplexPath