Erinevus lehekülje "ITI0011-2015:harjutus 10" redaktsioonide vahel
21. rida: | 21. rida: | ||
* '''getTotalRecordsInResponse''' tagastab XML tulemusest <code><totalItems>X</totalItems></code> X väärtuse. Kui tulemus puudub või getBookByTitle viskab erindi, siis tagastada 0. | * '''getTotalRecordsInResponse''' tagastab XML tulemusest <code><totalItems>X</totalItems></code> X väärtuse. Kui tulemus puudub või getBookByTitle viskab erindi, siis tagastada 0. | ||
− | * getPossibleBookTitles tagastab kõik raamatute nimed (see tähendab kõik väärtused, mis on <title> tagide vahel). Duplikaadid lubatud. Kui tulemus puudub võib getBookByTitle viskab erindi, siis tagatada tühi list. | + | * '''getPossibleBookTitles''' tagastab kõik raamatute nimed (see tähendab kõik väärtused, mis on <title> tagide vahel). Duplikaadid lubatud. Kui tulemus puudub võib getBookByTitle viskab erindi, siis tagatada tühi list. |
− | getBookWithMostPagesTitle, tagastab raamatu pealkirja(<title>), millel on antud XML korral kõige rohkem lehekülgi. Kui getBookByTitle viskab erindi, siis tagastada tühi string ("") | + | * '''getBookWithMostPagesTitle''', tagastab raamatu pealkirja(<title>), millel on antud XML korral kõige rohkem lehekülgi. Kui getBookByTitle viskab erindi, siis tagastada tühi string ("") |
− | * getPossbileAuthors, tagastab kõik leitud raamatute autorid, seejuures tuleb arvestada, et ühte autorit ei tohi olla listis rohkem kui 1 kord. Raamatu autori leiab <authors> tagide vahelt. Tähelepanu <authors> tag sisaldab tegelikult ainulte ühte autorit, mitme autori puhul on lisatud <authors> tage mitu korda. Erindi korral tagastada tühi list. | + | * '''getPossbileAuthors''', tagastab kõik leitud raamatute autorid, seejuures tuleb arvestada, et ühte autorit ei tohi olla listis rohkem kui 1 kord. Raamatu autori leiab <authors> tagide vahelt. Tähelepanu <authors> tag sisaldab tegelikult ainulte ühte autorit, mitme autori puhul on lisatud <authors> tage mitu korda. Erindi korral tagastada tühi list. |
− | * getBookWithLessThanNPagesTitles tagastab listi pealkirjadest, mille puhul on lehekülgi vähem kui n. Erindi puhul tagastada tühi list. | + | * '''getBookWithLessThanNPagesTitles''' tagastab listi pealkirjadest, mille puhul on lehekülgi vähem kui n. Erindi puhul tagastada tühi list. |
− | + | * '''query''' teeb päringu BookShopApi abiga ja salvestab viimase tulemuse klassimuutujasse lastResult. Kui tekib erind, siis viimane tulemus on võrdne tühja stringiga (""). | |
− | * query teeb päringu BookShopApi abiga ja salvestab viimase tulemuse klassimuutujasse lastResult. Kui tekib erind, siis viimane tulemus on võrdne tühja stringiga (""). | ||
Kasulikke materjale: | Kasulikke materjale: | ||
32. rida: | 31. rida: | ||
* http://dom4j.sourceforge.net/dom4j-1.6.1/ - xml väljundi mugavamaks parsimiseks | * http://dom4j.sourceforge.net/dom4j-1.6.1/ - xml väljundi mugavamaks parsimiseks | ||
* http://en.wikipedia.org/wiki/Regular_expression - regulaaravalidstega on võimalik mugavalt matchida konkreetseid elemente | * http://en.wikipedia.org/wiki/Regular_expression - regulaaravalidstega on võimalik mugavalt matchida konkreetseid elemente | ||
− | * http://www.freeformatter.com/xpath-tester.html | + | * http://www.freeformatter.com/xpath-tester.html - võimaldab kiiresti leida kõik otsitavad elem endid, näiteks //title leiab kohe kõik pealkirjad |
45. rida: | 44. rida: | ||
− | Example BookShopApi call | + | Example BookShopApi call: |
http://pastebin.com/9DcpBHe7 | http://pastebin.com/9DcpBHe7 | ||
== Mall == | == Mall == |
Redaktsioon: 24. märts 2015, kell 16:30
Testid alates 25. märtsist (või kui see teade ära kaob :) )
Harjutuse tähtaeg on 26.-27. märts.
Üldine informatsioon harjutuste kohta: ITI0011:harjutused.
Kirjeldus
Tuleb realiseerida klass BookStore
, mis sõltub BookShopApi
library'st, mille saab tõmmata Meedia:ITI0011-2014-BookStoreApiV01.zip.
BookStoreApi library võimaldab pealkirjade (või pealkirja osa) järgi pärida infot raamatu(te) kohta.
Näiteks:
<BookStoreInstance>.getBookByTitle("Tõde ja Õigus")
tagastab xml dokumendi http://pastebin.com/dSfNCHH8
BookStore
peab laiendama SimpleBookStore
klassi, mis tuleb kaasa BookShopApi
teegiga.
BookStore
peab olema eraldi defineeritud klass, mille konstruktor võtab argumendina ette BookShopApi
objekti. BookShop
klassis peab olema
defineeritud 5 meetodit: getTotalRecordsInResponse
, getPossibleBookTitles
, getBookWithMostPagesTitle
, getPossbileAuthors
, query
.
- getTotalRecordsInResponse tagastab XML tulemusest
<totalItems>X</totalItems>
X väärtuse. Kui tulemus puudub või getBookByTitle viskab erindi, siis tagastada 0. - getPossibleBookTitles tagastab kõik raamatute nimed (see tähendab kõik väärtused, mis on <title> tagide vahel). Duplikaadid lubatud. Kui tulemus puudub võib getBookByTitle viskab erindi, siis tagatada tühi list.
- getBookWithMostPagesTitle, tagastab raamatu pealkirja(<title>), millel on antud XML korral kõige rohkem lehekülgi. Kui getBookByTitle viskab erindi, siis tagastada tühi string ("")
- getPossbileAuthors, tagastab kõik leitud raamatute autorid, seejuures tuleb arvestada, et ühte autorit ei tohi olla listis rohkem kui 1 kord. Raamatu autori leiab <authors> tagide vahelt. Tähelepanu <authors> tag sisaldab tegelikult ainulte ühte autorit, mitme autori puhul on lisatud <authors> tage mitu korda. Erindi korral tagastada tühi list.
- getBookWithLessThanNPagesTitles tagastab listi pealkirjadest, mille puhul on lehekülgi vähem kui n. Erindi puhul tagastada tühi list.
- query teeb päringu BookShopApi abiga ja salvestab viimase tulemuse klassimuutujasse lastResult. Kui tekib erind, siis viimane tulemus on võrdne tühja stringiga ("").
Kasulikke materjale:
- http://www.freeformatter.com/xml-formatter.html - väljundi loetavamaks muutmiseks võib arenduse käigus kasutada järgnevat XML ilustajat.
- http://dom4j.sourceforge.net/dom4j-1.6.1/ - xml väljundi mugavamaks parsimiseks
- http://en.wikipedia.org/wiki/Regular_expression - regulaaravalidstega on võimalik mugavalt matchida konkreetseid elemente
- http://www.freeformatter.com/xpath-tester.html - võimaldab kiiresti leida kõik otsitavad elem endid, näiteks //title leiab kohe kõik pealkirjad
Loodavat funktsioonid
- public int getTotalRecordsInResponse()
- public ArrayList<String> getPossibleBookTitles()
- public String getBookWithMostPagesTitle()
- public ArrayList<String> getPossibleAuthors()
- public ArrayList<String> getBookWithLessThanNPagesTitles()
- public void query(String search)
Example BookShopApi call:
http://pastebin.com/9DcpBHe7