------ Работа с кэширующей версией API ------ Dmitry Samoshin aka gotty ------ 2017-01-27 ------ ~~ Copyright (c) 2017. Developed by Hedgecode. ~~ ~~ Licensed under the Apache License, Version 2.0 (the "License"); ~~ you may not use this file except in compliance with the License. ~~ You may obtain a copy of the License at ~~ ~~ http://www.apache.org/licenses/LICENSE-2.0 ~~ ~~ Unless required by applicable law or agreed to in writing, software ~~ distributed under the License is distributed on an "AS IS" BASIS, ~~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ~~ See the License for the specific language governing permissions and ~~ limitations under the License. ~~ NOTE: For help with the syntax of this file, see: ~~ http://maven.apache.org/doxia/references/apt-format.html Работа с кэширующей версией API При первоначальном вызове API-метода для получения основного интерфейса библиотеки +------- SnookerScoreAPI api = Snooker.API(); +------- мы по умолчанию имеем дело с кэширующей реализацией API-интерфейса <<>>.\ В чем же её преимущества? === Во-первых, при работе с кэширующей версией интерфейса при различных запросах вы получаете более полный объём полезной информации. Например, при запросе текущих матчей в выборке будут содержаться, помимо другой информации, ссылки на турнир (объект <<>>), а также на игроков, участвующих в каждом матче (объекты <<>>): +------- SnookerScoreAPI api = Snooker.API(); OngoingMatches matches = api.getOngoingMatches(); for (OngoingMatch match : matches) { Event event = match.event(); Player player1 = match.player1(); Player player2 = match.player2(); } +------- Тогда как при работе с некэширующей версией интерфейса вам придётся делать дополнительные запросы о турнире и игроках, чтобы получить полную информацию о проходящих матчах: +------- SnookerScoreAPI api = Snooker.uncachedAPI(); OngoingMatches matches = api.getOngoingMatches(); for (OngoingMatch match : matches) { Event event = api.getEvent(match.eventId()); Player player1 = api.getPlayer(match.player1Id()); Player player2 = api.getPlayer(match.player2Id()); } +------- === Во-вторых, в кэширующей версии интерфейса вам предоставляется возможность задать текущий сезон, с событиями которого в дальнейшем вы собираетесь работать путем запросов турниров и матчей: +------- SnookerScoreAPI api = Snooker.API(); api.setCurrentSeason(Season.getSeason(2015)); +------- === P.S. Если вам необходимо использовать некэширующую версию API-интерфейса, то её можно получить следующим образом: +------- SnookerScoreAPI uncachedApi = Snooker.uncachedAPI(); +-------