[LIB-5] Site sources of snooker-score-api
authorgotty <gotty@fb0bcced-7025-49ed-a12f-f98bce993226>
Fri, 2 Jun 2017 13:01:00 +0000 (13:01 +0000)
committergotty <gotty@fb0bcced-7025-49ed-a12f-f98bce993226>
Fri, 2 Jun 2017 13:01:00 +0000 (13:01 +0000)
git-svn-id: https://svn.hedgecode.org/lib/snooker-score-api/trunk@120 fb0bcced-7025-49ed-a12f-f98bce993226

17 files changed:
sample.txt [new file with mode: 0644]
src/site/apt/examples/handle-the-api-exceptions.apt.vm [new file with mode: 0644]
src/site/apt/examples/use-sort-in-collections.apt.vm [new file with mode: 0644]
src/site/apt/examples/work-with-the-cached-api.apt.vm [new file with mode: 0644]
src/site/apt/index.apt.vm [new file with mode: 0644]
src/site/apt/usage.apt.vm [new file with mode: 0644]
src/site/fml/faq.fml [new file with mode: 0644]
src/site/ru/apt/examples/handle-the-api-exceptions.apt.vm [new file with mode: 0644]
src/site/ru/apt/examples/use-sort-in-collections.apt.vm [new file with mode: 0644]
src/site/ru/apt/examples/work-with-the-cached-api.apt.vm [new file with mode: 0644]
src/site/ru/apt/index.apt.vm [new file with mode: 0644]
src/site/ru/apt/usage.apt.vm [new file with mode: 0644]
src/site/ru/fml/faq.fml [new file with mode: 0644]
src/site/ru/xdoc/download.xml.vm [new file with mode: 0644]
src/site/site.xml [new file with mode: 0644]
src/site/site_ru.xml [new file with mode: 0644]
src/site/xdoc/download.xml.vm [new file with mode: 0644]

diff --git a/sample.txt b/sample.txt
new file mode 100644 (file)
index 0000000..2786210
--- /dev/null
@@ -0,0 +1,159 @@
+Event
+[
+{
+"ID": 398,
+"Name": "Shanghai Masters Qualifiers",
+"StartDate": "2015-08-05",
+"EndDate": "2015-08-09",
+"Sponsor": "Bank of Communications OTO",
+"Season": 2015,
+"Type": "Qualifying",
+"Num": 0,
+"Venue": "Barnsley Metrodome",
+"City": "Barnsley",
+"Country": "England",
+"Discipline": "snooker",
+"Main": 403,
+"Sex": "Both",
+"AgeGroup": "O",
+"Url": "",
+"Related": "shanghai",
+"Stage": "Q",
+"ValueType": "SM",
+"ShortName": "",
+"WorldSnookerId": 13850,
+"RankingType": "WR",
+"EventPredictionID": 0,
+"Team": false,
+"Format": 1,
+"Twitter": "",
+"HashTag": "SnookerShanghaiMasters",
+"ConversionRate": 1,
+"AllRoundsAdded": true,
+"PhotoURLs": "",
+"NumCompetitors": 96,
+"NumUpcoming": 0,
+"NumActive": 0,
+"NumResults": 96,
+"Note": "",
+"CommonNote": "Watch on <a href=\u0022http:\u002F\u002Fwww.worldsnooker.livesport.tv\u002F\u0022>World Snooker<\u002Fa> and selected betting sites",
+"DefendingChampion": 0,
+"PreviousEdition": 0
+}
+]
+
+*********************************************************
+Match
+[
+{
+"ID": 2240166,
+"EventID": 397,
+"Round": 1,
+"Number": 5,
+"Player1ID": 1730,
+"Score1": 1,
+"Walkover1": false,
+"Player2ID": 1590,
+"Score2": 4,
+"Walkover2": false,
+"WinnerID": 1590,
+"Unfinished": false,
+"OnBreak": false,
+"WorldSnookerID": 386706,
+"LiveUrl": "",
+"DetailsUrl": "",
+"PointsDropped": false,
+"ShowCommonNote": false,
+"Estimated": false,
+"Type": 1,
+"TableNo": 0,
+"VideoURL": "",
+"InitDate": "2015-07-08T13:36:14Z",
+"ModDate": "2015-07-29T14:14:35Z",
+"StartDate": "2015-07-29T14:14:35Z",
+"EndDate": "2015-07-29T17:25:14Z",
+"ScheduledDate": "2015-07-29T14:00:00Z",
+"FrameScores": "",
+"Sessions": "",
+"Note": "",
+"ExtendedNote": ""
+}
+]
+
+*********************************************************
+Player
+
+[
+{
+"ID": 1,
+"Type": 1,
+"FirstName": "Mark",
+"MiddleName": "J",
+"LastName": "Williams",
+"TeamName": "",
+"TeamNumber": 0,
+"TeamSeason": 0,
+"ShortName": "M J Williams",
+"Nationality": "Wales",
+"Sex": "M",
+"BioPage": "http:\u002F\u002Fsnooker.org\u002Fplr\u002Fbio\u002Fmwilliams.shtml",
+"Born": "1975-03-21",
+"Twitter": "markwil147",
+"SurnameFirst": false,
+"License": "",
+"Club": "",
+"URL": "",
+"Photo": "http:\u002F\u002Fsnooker.org\u002Fimg\u002Fplayers\u002FMarkWilliams.png",
+"Info": ""
+}
+]
+
+*********************************************************
+Ranking
+[
+{
+"ID": 10830258,
+"Position": 1,
+"PlayerID": 17,
+"Season": 2015,
+"Sum": 680041,
+"Type": "MoneyRankings"
+}
+]
+*********************************************************
+OngoingMatch
+[
+{
+"ID": 3352339,
+"EventID": 531,
+"Round": 7,
+"Number": 8,
+"Player1ID": 17,
+"Score1": 0,
+"Walkover1": false,
+"Player2ID": 1,
+"Score2": 1,
+"Walkover2": false,
+"WinnerID": 0,
+"Unfinished": true,
+"OnBreak": false,
+"WorldSnookerID": 434080,
+"LiveUrl": "",
+"DetailsUrl": "",
+"PointsDropped": false,
+"ShowCommonNote": true,
+"Estimated": false,
+"Type": 1,
+"TableNo": 0,
+"VideoURL": "",
+"InitDate": "2016-12-04T14:45:51Z",
+"ModDate": "2017-01-18T13:39:40Z",
+"StartDate": "2017-01-18T13:10:00Z",
+"EndDate": "",
+"ScheduledDate": "2017-01-18T13:00:00Z",
+"FrameScores": "",
+"Sessions": "",
+"Note": "",
+"ExtendedNote": ""
+}
+]
diff --git a/src/site/apt/examples/handle-the-api-exceptions.apt.vm b/src/site/apt/examples/handle-the-api-exceptions.apt.vm
new file mode 100644 (file)
index 0000000..45cbab6
--- /dev/null
@@ -0,0 +1,68 @@
+ ------
+ Handling the API exceptions
+ ------
+ 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
+
+Handling the API exceptions
+
+  This library provides the basic exception <<<APIException>>> that in the event 
+  of exceptional situations can inform the client application of the type of error 
+  that occurred in the process of using library methods.\
+  This exception can notify you about two types of exception:
+
++-------
+public class APIException extends Exception {
+
+    public static enum Type {
+        INFO,
+        REQUEST
+    }
+    ...
+}
++-------
+
+  You can get the type of exception that was thrown by using the method <<<APIException.getType()>>>.
+
+  The type <<<INFO>>> tells the client application that the exception that that has occurred 
+  is not critical and is not related to the inability to obtain useful information.
+  The work of the application can be continued after detection of this type of exception without 
+  serious consequences but with some adjustments in the future working functionality.
+
+  The type <<<REQUEST>>> tells the client application that the exception that has occurred is associated 
+  with the process of obtaining useful information from the portal {{{http://snooker.org/}snooker.org}}
+  or with the inability to handle the received information.\
+  This type of exception can occur for several reasons:
+
+  <<1.>> The data passed to the API method is incorrect. This can occur in case of an incorrect 
+  input ID (tournament, player, etc.) or a <<null>> input parameter. In this case the application 
+  can continue to work after correction the transmitted parameters.
+
+  <<2.>> Inaccessibility of the communication channel (access to the portal).
+  Information simply can not be obtained. In this case the client application can not continue
+  to work until an Internet connection is established.
+
+  <<3.>> The portal API has changed. Incoming data can not be processed correctly.
+  This case is the most significant. It means that the current version of the library
+  can no longer be considered workable. It is necessary to check the availability of 
+  a more recent version of the library and if there is none then inform the developer about 
+  of a detected nonconformity between API library and portal {{{http://api.snooker.org/}api.snooker.org}}.
diff --git a/src/site/apt/examples/use-sort-in-collections.apt.vm b/src/site/apt/examples/use-sort-in-collections.apt.vm
new file mode 100644 (file)
index 0000000..ec7f9b3
--- /dev/null
@@ -0,0 +1,89 @@
+ ------
+ Using sorting of received data
+ ------
+ 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
+
+Using sorting of received data
+
+  The data obtained from the API methods calls of the main interface of the library,
+  in most cases, represent collection classes (<<<Players>>>, <<<Events>>>, <<<Matches>>>) 
+  which can be sorted by certain parameters for convenience of further use in client applications.
+
+  The types of possible sorts for specific collection classes are listed below.
+
+===
+
+  <<<Players>>> - entity class which contains a selection of players on certain parameters.\
+  This class provides two types of sorting:
+
+  <<1.>> Sorting players by name.
+
+  <<2.>> Sorting players by age, both in descending order and in ascending order.
+
+  Java code that shows all the above sorting methods is presented below:
+
++-------
+Players players = Snooker.API().getPlayers(...);
+...
+players.sortByName();
+...
+players.sortByAge();
+players.sortByAgeDesc();
+...
++-------
+
+===
+
+  <<<Events>>> - entity class which contains a selection of tournaments for certain parameters.
+
+  Java code that shows the sorting of tournaments by date is presented below:
+
++-------
+Events events = Snooker.API().getSeasonEvents((...);
+...
+events.sortByDate();
+...
++-------
+
+===
+
+  <<<Matches>>> - entity class which contains a selection of matches for certain parameters.\
+  This class provides two types of sorting:
+
+  <<1.>> Sorting matches by number.\
+  This sorting type will be useful when the selection contains all the matches of a single tournament.
+
+  <<2.>> Sorting matches by tournament.\
+  This sorting type will be useful when the selection contains all the matches
+  of an individual player for the season in different tournaments.
+
+  Java code that shows all the above sorting methods is presented below:
+
++-------
+Matches matches = Snooker.API().getEventMatches((...);
+...
+matches.sortByNumber();
+...
+matches.sortByEvent();
+...
++-------
diff --git a/src/site/apt/examples/work-with-the-cached-api.apt.vm b/src/site/apt/examples/work-with-the-cached-api.apt.vm
new file mode 100644 (file)
index 0000000..912a756
--- /dev/null
@@ -0,0 +1,85 @@
+ ------
+ Working with the cached version 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
+
+Working with the cached version API
+
+  When you first call the API method to get the main interface of the library
+
++-------
+SnookerScoreAPI api = Snooker.API();
++-------
+
+  by default we get the cached implementation of the API interface <<<SnookerScoreAPI>>>.\
+  What are its advantages?
+
+===
+
+  Firstly, when using the cached version of the interface for various queries, you get a full range 
+  of useful information. For example, when requesting current matches, the sample will contain 
+  links to the tournament (object <<<Event>>>) as well as to the players 
+  participating in each match (objects <<<Player>>>) in addition to other information:
+
++-------
+SnookerScoreAPI api = Snooker.API();
+OngoingMatches matches = api.getOngoingMatches();
+for (OngoingMatch match : matches) {
+    Event event = match.event();
+    Player player1 = match.player1();
+    Player player2 = match.player2();
+}
++-------
+
+  Whereas when working with the noncached version of the interface, you will have to make 
+  additional queries about the tournament and players in order to get full information 
+  about the ongoing matches:
+
++-------
+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());
+}
++-------
+
+===
+
+  Secondly, in the cached version of the interface, you are given the opportunity to specify 
+  the current season, with the events of which in the future you are going to work 
+  by requesting tournaments and matches:
+
++-------
+SnookerScoreAPI api = Snooker.API();
+api.setCurrentSeason(Season.getSeason(2015));
++-------
+
+===
+
+  P.S. If you need to use the noncached version of the API, you can get it as follows:
+
++-------
+SnookerScoreAPI uncachedApi = Snooker.uncachedAPI();
++-------
diff --git a/src/site/apt/index.apt.vm b/src/site/apt/index.apt.vm
new file mode 100644 (file)
index 0000000..5f23c23
--- /dev/null
@@ -0,0 +1,56 @@
+ ------
+ Introduction
+ ------
+ Dmitry Samoshin aka gotty
+ ------
+ 2017-01-22
+ ------
+
+~~ 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
+
+${project.name}
+
+  ${project.description}
+
+  All useful information is downloaded via the HTTP protocol from the portal {{{http://snooker.org/}snooker.org}},
+  so for the functioning of applications that use this library Internet access is required.
+
+  The current version of the library:
+  {{{http://repo.hedgecode.org/content/repositories/releases/org/hedgecode/snooker/${project.artifactId}/${project.version}/${project.artifactId}-${project.version}.jar}${project.version}}}
+
+  <<Note>>: <All versions of the library up to version 1.0 can not be considered completely stable.>
+
+* Usage
+
+  General instructions on how to use this library can be found on the {{{./usage.html}usage page}}.
+
+  Description of the main methods of the library is in the section {{{./faq.html}FAQ}}.
+
+  Some more specific use cases are described in the examples given below.
+
+* Examples
+
+  To better understand the described library you can refer to the following examples:
+
+  * {{{./examples/work-with-the-cached-api.html}Working with the cached version API}}
+
+  * {{{./examples/use-sort-in-collections.html}Using sorting of received data}}
+
+  * {{{./examples/handle-the-api-exceptions.html}Handling the API exceptions}}
+
+  []
diff --git a/src/site/apt/usage.apt.vm b/src/site/apt/usage.apt.vm
new file mode 100644 (file)
index 0000000..15f62f4
--- /dev/null
@@ -0,0 +1,119 @@
+ ------
+ Usage
+ ------
+ Dmitry Samoshin aka gotty
+ ------
+ 2017-01-22
+ ------
+
+~~ 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
+
+Usage
+
+* Add the library for use in Java applications
+
+  The template for adding this library for developing Java applications
+  using the pom.xml configuration maven file is described below:
+
++-----
+<project>
+    ...
+    <dependencies>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>${project.artifactId}</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+    </dependencies>
+    ...
+</project>
++-----
+
+  <<Note>>: Maven 3.0 will issue warnings if you do not specify the version of a plugin.
+
+* Work with the Java code of the library
+
+  After adding the library to the project you can start working with its code.\
+  To get an instance of the main library interface you need to add the following code:
+
++-----
+SnookerScoreAPI api = Snooker.API();
++-----
+
+  <<<SnookerScoreAPI>>> is an interface with a set of all main methods that allow to access information 
+  about the seasons, tournaments, matches, players and their ratings through entity objects.
+
+  The library provides two implementations of the main interface:
+  with caching data for players and events (tournaments) inside and without caching.
+  Implementation of the interface with caching is "by default".\
+  Access to each of the two implementations of the interface can be obtained by the following method calls:
+
++-----
+SnookerScoreAPI cachedApi = Snooker.cachedAPI(); /* API with cache */
+...
+SnookerScoreAPI uncachedApi = Snooker.uncachedAPI(); /* API without cache */
++-----
+
+  Further work with the library is a sequence of calls to <<<SnookerScoreAPI>>> interface methods
+  to obtain lists of tournaments, players, current matches and other statistical information.\
+  For example, to get information on the matches currently underway, 
+  it is enough to execute the following code:
+
++-----
+SnookerScoreAPI api = Snooker.API();
+OngoingMatches matches = api.getOngoingMatches();
++-----
+
+  Description of most interface methods can be found in the section {{{./faq.html}FAQ}},
+  and the most often encountered situations are considered on the pages with examples.
+  Signature of methods as well as information on other entities of the library is presented in
+  {{{./apidocs/}JavaDoc}}.
+
+* Run the library from the command line
+
+  You can run this library from the command line to check the correctness of the connection 
+  to the information portal {{{http://snooker.org/}snooker.org}}.
+  Starting the library from the command line is as follows:
+
++-----
+java -jar ${project.artifactId}-${project.version}.jar
++-----
+
+  If the launch is working correctly, you can see a list of current and upcoming snooker tournaments.\
+  The sample output of the launching the library is shown below:
+
++-----
+********************************************************************************
+                    Welcome to Hedgecode Snooker Score API!
+                -----------------------------------------------
+         It is an API library for portal snooker.org, which contains
+      the results of snooker competitions and other snooker information.
+    This library provides a set of entity objects that can be used in client
+    applications (to inform about the results of snooker), developed in Java.
+********************************************************************************
+  Current Snooker Events:
+     China Open Qualifiers [24.01.2017 - 27.01.2017] (England, Preston)
+********************************************************************************
+  Upcoming Snooker Events:
+     German Masters [01.02.2017 - 05.02.2017] (Germany, Berlin)
+     World Grand Prix [06.02.2017 - 12.02.2017] (England, Preston)
+     Welsh Open [13.02.2017 - 19.02.2017] (Wales, Cardiff)
+     Connie Gough Memorial Trophy [18.02.2017 - 18.02.2017] (England, Dunstable)
+     Championship League - Group 5 [20.02.2017 - 21.02.2017] (England, Coventry)
+********************************************************************************
++-----
diff --git a/src/site/fml/faq.fml b/src/site/fml/faq.fml
new file mode 100644 (file)
index 0000000..85077a7
--- /dev/null
@@ -0,0 +1,139 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+  ~ 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.
+-->
+
+<faqs xmlns="http://maven.apache.org/FML/1.0.1"
+      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+      xsi:schemaLocation="http://maven.apache.org/FML/1.0.1 http://maven.apache.org/xsd/fml-1.0.1.xsd"
+      title="Frequently Asked Questions">
+    <part id="general">
+        <title>General:</title>
+        <faq id="how-to-get-event">
+            <question>
+                How to get full information on a specific tournament?
+            </question>
+            <answer>
+                <p><pre>Event event = Snooker.API().getEvent(eventId);</pre>
+                where parameter <code>eventId</code> is ID of the tournament.
+                </p>
+            </answer>
+        </faq>
+        <faq id="how-to-get-match">
+            <question>
+                How to get full information on a specific match?
+            </question>
+            <answer>
+                <p><pre>Match match = Snooker.API().getMatch(eventId, roundId, matchNumber);</pre>
+                where parameter <code>eventId</code> is ID of the tournament which the match is played;
+                <code>roundId</code> is ID of the round of the tournament;
+                <code>matchNumber</code> is number of the match in the round.
+                </p>
+            </answer>
+        </faq>
+        <faq id="how-to-get-player">
+            <question>
+                How to get full information on a specific player?
+            </question>
+            <answer>
+                <p><pre>Player player = Snooker.API().getPlayer(int playerId);</pre>
+                where parameter <code>playerId</code> is ID of the player.
+                </p>
+            </answer>
+        </faq>
+        <faq id="how-to-get-season-events">
+            <question>
+                How to get information on all tournaments in the season?
+            </question>
+            <answer>
+                <p><pre>Events seasonEvents = Snooker.API().getSeasonEvents(season);</pre>
+                where parameter <code>season</code> is object of class <code>Season</code>
+                that specify a season or <code>Season.ALL</code> for all available seasons.
+                </p>
+            </answer>
+        </faq>
+        <faq id="how-to-get-event-matches">
+            <question>
+                How to get information on all matches of a specific tournament?
+            </question>
+            <answer>
+                <p><pre>Matches eventMatches = Snooker.API().getEventMatches(eventId);</pre>
+                where parameter <code>eventId</code> is ID of the tournament.
+                </p>
+            </answer>
+        </faq>
+        <faq id="how-to-get-ongoing-matches">
+            <question>
+                How to get information on the matches which take place in this moment?
+            </question>
+            <answer>
+                <p><pre>OngoingMatches matches = Snooker.API().getOngoingMatches();</pre>
+                </p>
+            </answer>
+        </faq>
+        <faq id="how-to-get-player-matches">
+            <question>
+                How to get information on all matches of a specific player in the season?
+            </question>
+            <answer>
+                <p><pre>Matches playerMatches = Snooker.API().getPlayerMatches(playerId, season);</pre>
+                where parameter <code>playerId</code> is ID of the player
+                and <code>season</code> is object of class <code>Season</code>
+                that specify a season or <code>Season.ALL</code> for all available seasons.
+                </p>
+            </answer>
+        </faq>
+        <faq id="how-to-get-event-players">
+            <question>
+                How to get information on all players in a specific tournament?
+            </question>
+            <answer>
+                <p><pre>Players eventPlayers = Snooker.API().getEventPlayers(eventId);</pre>
+                where parameter <code>eventId</code> is ID of the tournament.
+                </p>
+            </answer>
+        </faq>
+        <faq id="how-to-get-players">
+            <question>
+                How to get information on all players in a specific season?
+            </question>
+            <answer>
+                <p><pre>Players players = Snooker.API().getPlayers(season, category);</pre>
+                where parameter <code>season</code> is object of class <code>Season</code>
+                that specify a season or <code>Season.ALL</code> for all available seasons
+                and <code>category</code> is object of class <code>PlayerCategory</code>
+                that specify a category of players (for example, <code>PlayerCategory.PRO</code>).
+                </p>
+            </answer>
+        </faq>
+    </part>
+    <part id="additional">
+        <title>Additional:</title>
+        <faq id="how-to-get-rankings">
+            <question>
+                How to get information on the ratings/earnings of all players in the season?
+            </question>
+            <answer>
+                <p><pre>Rankings rankings = Snooker.API().getRankings(season, rankingType);</pre>
+                where parameter <code>season</code> is object of class <code>Season</code>
+                that specify a season or <code>Season.ALL</code> for all available seasons
+                and <code>rankingType</code> is object of class <code>RankingType</code>
+                that specify a rating type (for example, <code>RankingType.MoneyRankings</code>).
+                </p>
+            </answer>
+        </faq>
+    </part>
+</faqs>
diff --git a/src/site/ru/apt/examples/handle-the-api-exceptions.apt.vm b/src/site/ru/apt/examples/handle-the-api-exceptions.apt.vm
new file mode 100644 (file)
index 0000000..acaaa15
--- /dev/null
@@ -0,0 +1,68 @@
+ ------
+ ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ, Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‰ΠΈΡ… ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ Ρ 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
+
+  Π’ Π΄Π°Π½Π½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ <<<APIException>>>, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅
+  ΠΏΡ€ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠΎΠ±Ρ‰Π°Ρ‚ΡŒ ΠΊΠ»ΠΈΠ΅Π½Ρ‚скому ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ
+  ΠΎ Ρ‚ΠΈΠΏΠ΅ Π²ΠΎΠ·Π½ΠΈΠΊΡˆΠ΅ΠΉ ΠΎΡˆΠΈΠ±ΠΊΠ΅ Π² ΠΏΡ€ΠΎΡ†Π΅ΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅Ρ‡Π½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ².\
+  Π”Π°Π½Π½ΠΎΠ΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»ΡΡ‚ΡŒ ΠΎ Π΄Π²ΡƒΡ… Ρ‚ΠΈΠΏΠ°Ρ… ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΠΉ:
+
++-------
+public class APIException extends Exception {
+
+    public static enum Type {
+        INFO,
+        REQUEST
+    }
+    ...
+}
++-------
+
+  ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ‚ΠΈΠΏ Π²ΠΎΠ·Π½ΠΈΠΊΡˆΠ΅Π³ΠΎ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° <<<APIException.getType()>>>.
+
+  Π’ΠΈΠΏ <<<INFO>>> ΡΠΎΠΎΠ±Ρ‰Π°Π΅Ρ‚ ΠΊΠ»ΠΈΠ΅Π½Ρ‚скому ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΡˆΠ΅Π΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π½Π΅ ΡΠ²Π»ΡΠ΅Ρ‚ся
+  ΠΊΡ€ΠΈΡ‚ичСским ΠΈ Π½Π΅ ΡΠ²ΡΠ·Π°Π½ΠΎ Ρ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ.
+  Π Π°Π±ΠΎΡ‚Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½Π° ΠΏΠΎΡΠ»Π΅ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΡ Π΄Π°Π½Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π±Π΅Π·
+  ΡΠ΅Ρ€ΡŒΠ΅Π·Π½Ρ‹Ρ… ΠΏΠΎΡΠ»Π΅Π΄ΡΡ‚Π²ΠΈΠΉ, Π½ΠΎ Ρ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌΠΈ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²ΠΊΠ°ΠΌΠΈ Π² Π΄Π°Π»ΡŒΠ½Π΅ΠΉΡˆΠ΅ΠΌ Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π΅.
+
+  Π’ΠΈΠΏ <<<REQUEST>>> ΡΠΎΠΎΠ±Ρ‰Π°Π΅Ρ‚ ΠΊΠ»ΠΈΠ΅Π½Ρ‚скому ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΡˆΠ΅Π΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΡΠ²ΡΠ·Π°Π½ΠΎ
+  Ρ ΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΠΌ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΡ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Ρ ΠΏΠΎΡ€Ρ‚Π°Π»Π° {{{http://snooker.org/}snooker.org}}, Π»ΠΈΠ±ΠΎ
+  Ρ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ.\
+  Π”Π°Π½Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ ΠΏΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΠΌ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°ΠΌ:
+
+  <<1.>> Π”Π°Π½Π½Ρ‹Π΅, ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½Ρ‹Π΅ API-ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ, Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹. Π’Π°ΠΊΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ Π² ΡΠ»ΡƒΡ‡Π°Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ
+  Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠ³ΠΎ Π²Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ ID (Ρ‚ΡƒΡ€Π½ΠΈΡ€Π°, ΠΈΠ³Ρ€ΠΎΠΊΠ° ΠΈ ΠΏΡ€.) ΠΈΠ»ΠΈ ΠΆΠ΅ <<null>>-ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. Π’ Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡƒΡ‡Π°Π΅
+  Ρ€Π°Π±ΠΎΡ‚Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½Π° ΠΏΠΎΡΠ»Π΅ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²ΠΊΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ².
+
+  <<2.>> ΠΠ°Ρ€ΡƒΡˆΠ΅Π½ΠΈΠ΅ ΠΊΠ°Π½Π°Π»Π° ΡΠ²ΡΠ·ΠΈ (доступа ΠΊ ΠΏΠΎΡ€Ρ‚Π°Π»Ρƒ). Π˜Π½Ρ„ормация ΠΏΡ€ΠΎΡΡ‚ΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π°.
+  Π’ Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡƒΡ‡Π°Π΅ ΠΊΠ»ΠΈΠ΅Π½Ρ‚скоС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π΄ΠΎ ΡƒΡΡ‚ановлСния Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ 
+  ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚-соСдинСния.
+
+  <<3.>> API ΡΠ°ΠΌΠΎΠ³ΠΎ ΠΏΠΎΡ€Ρ‚Π°Π»Π° ΠΏΡ€Π΅Ρ‚Π΅Ρ€ΠΏΠ΅Π»ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ. Π’ходящиС Π΄Π°Π½Π½Ρ‹Π΅ Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½Ρ‹.
+  Π­Ρ‚ΠΎΡ‚ ΡΠ»ΡƒΡ‡Π°ΠΉ ΡΠ°ΠΌΡ‹ΠΉ ΡΡƒΡ‰Π΅ΡΡ‚Π²Π΅Π½Π½Ρ‹ΠΉ. ΠžΠ½ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Ρ‚Скущая Π²Π΅Ρ€ΡΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΡƒΠΆΠ΅ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒΡΡ
+  Ρ€Π°Π±ΠΎΡ‚оспособной. ΠΠ΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Π±ΠΎΠ»Π΅Π΅ ΡΠ²Π΅ΠΆΠ΅ΠΉ Π²Π΅Ρ€ΡΠΈΠΈ Π΄Π°Π½Π½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, ΠΈ Π΅ΡΠ»ΠΈ Ρ‚аковая
+  ΠΎΡ‚сутствуСт, Ρ‚ΠΎ ΡΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ ΠΎ Π²Ρ‹ΡΠ²Π»Π΅Π½Π½ΠΎΠΌ Π½Π΅ΡΠΎΠΎΡ‚вСтствии API Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ
+  ΠΈ ΠΏΠΎΡ€Ρ‚Π°Π»Π° {{{http://api.snooker.org/}api.snooker.org}}.
diff --git a/src/site/ru/apt/examples/use-sort-in-collections.apt.vm b/src/site/ru/apt/examples/use-sort-in-collections.apt.vm
new file mode 100644 (file)
index 0000000..244cb61
--- /dev/null
@@ -0,0 +1,88 @@
+ ------
+ Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…
+ ------
+ 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-ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ³ΠΎ ΠΈΠ½Ρ‚СрфСйса Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ ΡΠ²ΠΎΠ΅ΠΌ
+  ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ ΠΊΠ»Π°ΡΡΡ‹-ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ (<<<Players>>>, <<<Events>>>, <<<Matches>>>), ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π΄Π»Ρ ΡƒΠ΄ΠΎΠ±ΡΡ‚Π²Π°
+  Π΄Π°Π»ΡŒΠ½Π΅ΠΉΡˆΠ΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΡ Π² ΠΊΠ»ΠΈΠ΅Π½Ρ‚ских ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ… ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΡƒ ΠΏΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌ.
+
+  ΠΠΈΠΆΠ΅ ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½Ρ‹ Π²ΠΈΠ΄Ρ‹ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΎΠΊ Π΄Π»Ρ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… ΠΊΠ»Π°ΡΡΠΎΠ²-ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ.
+
+===
+
+  <<<Players>>> - ΠΊΠ»Π°ΡΡ-ΡΡƒΡ‰Π½ΠΎΡΡ‚ΡŒ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΡΠΎΠ΄Π΅Ρ€ΠΆΠΈΡ‚ся Π²Ρ‹Π±ΠΎΡ€ΠΊΠ° ΠΈΠ³Ρ€ΠΎΠΊΠΎΠ² ΠΏΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌ.\
+  Π”Π°Π½Π½Ρ‹ΠΉ ΠΊΠ»Π°ΡΡ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚авляСт Π΄Π²Π° Π²ΠΈΠ΄Π° ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠΈ:
+
+  <<1.>> Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° ΠΈΠ³Ρ€ΠΎΠΊΠΎΠ² ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ.
+
+  <<2.>> Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° ΠΈΠ³Ρ€ΠΎΠΊΠΎΠ² ΠΏΠΎ Π²ΠΎΠ·Ρ€Π°ΡΡ‚Ρƒ, ΠΊΠ°ΠΊ ΠΏΠΎ ΡƒΠ±Ρ‹Π²Π°Π½ΠΈΡŽ, Ρ‚Π°ΠΊ ΠΈ ΠΏΠΎ Π²ΠΎΠ·Ρ€Π°ΡΡ‚Π°Π½ΠΈΡŽ.
+
+  ΠΠΈΠΆΠ΅ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ Java-ΠΊΠΎΠ΄, Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ Π²ΡΠ΅ Π²Ρ‹ΡˆΠ΅ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ ΡΠΏΠΎΡΠΎΠ±Ρ‹ ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠΈ:
+
++-------
+Players players = Snooker.API().getPlayers(...);
+...
+players.sortByName();
+...
+players.sortByAge();
+players.sortByAgeDesc();
+...
++-------
+
+===
+
+  <<<Events>>> - ΠΊΠ»Π°ΡΡ-ΡΡƒΡ‰Π½ΠΎΡΡ‚ΡŒ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΡΠΎΠ΄Π΅Ρ€ΠΆΠΈΡ‚ся Π²Ρ‹Π±ΠΎΡ€ΠΊΠ° Ρ‚ΡƒΡ€Π½ΠΈΡ€ΠΎΠ² ΠΏΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌ.
+
+  ΠΠΈΠΆΠ΅ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ Java-ΠΊΠΎΠ΄, Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΡƒ Ρ‚ΡƒΡ€Π½ΠΈΡ€ΠΎΠ² ΠΏΠΎ Π΄Π°Ρ‚Π΅:
+
++-------
+Events events = Snooker.API().getSeasonEvents((...);
+...
+events.sortByDate();
+...
++-------
+
+===
+
+  <<<Matches>>> - ΠΊΠ»Π°ΡΡ-ΡΡƒΡ‰Π½ΠΎΡΡ‚ΡŒ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΡΠΎΠ΄Π΅Ρ€ΠΆΠΈΡ‚ся Π²Ρ‹Π±ΠΎΡ€ΠΊΠ° ΠΌΠ°Ρ‚Ρ‡Π΅ΠΉ ΠΏΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌ.\
+  Π”Π°Π½Π½Ρ‹ΠΉ ΠΊΠ»Π°ΡΡ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚авляСт Π΄Π²Π° Π²ΠΈΠ΄Π° ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠΈ:
+
+  <<1.>> Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° ΠΌΠ°Ρ‚Ρ‡Π΅ΠΉ ΠΏΠΎ Π½ΠΎΠΌΠ΅Ρ€Ρƒ.\
+  Π”Π°Π½Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠΈ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ»Π΅Π·Π΅Π½ Ρ‚ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹Π±ΠΎΡ€ΠΊΠ° ΡΠΎΠ΄Π΅Ρ€ΠΆΠΈΡ‚ Π²ΡΠ΅ ΠΌΠ°Ρ‚Ρ‡ΠΈ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ Π²Π·ΡΡ‚ΠΎΠ³ΠΎ Ρ‚ΡƒΡ€Π½ΠΈΡ€Π°.
+
+  <<2.>> Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° ΠΌΠ°Ρ‚Ρ‡Π΅ΠΉ ΠΏΠΎ Ρ‚ΡƒΡ€Π½ΠΈΡ€Π°ΠΌ.\
+  Π”Π°Π½Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠΈ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ»Π΅Π·Π΅Π½ Ρ‚ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹Π±ΠΎΡ€ΠΊΠ° ΡΠΎΠ΄Π΅Ρ€ΠΆΠΈΡ‚ Π²ΡΠ΅ ΠΌΠ°Ρ‚Ρ‡ΠΈ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ Π²Π·ΡΡ‚ΠΎΠ³ΠΎ ΠΈΠ³Ρ€ΠΎΠΊΠ° Π·Π° ΡΠ΅Π·ΠΎΠ½ Π² Ρ€Π°Π·Π½Ρ‹Ρ… Ρ‚ΡƒΡ€Π½ΠΈΡ€Π°Ρ….
+
+  ΠΠΈΠΆΠ΅ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ Java-ΠΊΠΎΠ΄, Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ Π²ΡΠ΅ Π²Ρ‹ΡˆΠ΅ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ ΡΠΏΠΎΡΠΎΠ±Ρ‹ ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠΈ:
+
++-------
+Matches matches = Snooker.API().getEventMatches((...);
+...
+matches.sortByNumber();
+...
+matches.sortByEvent();
+...
++-------
diff --git a/src/site/ru/apt/examples/work-with-the-cached-api.apt.vm b/src/site/ru/apt/examples/work-with-the-cached-api.apt.vm
new file mode 100644 (file)
index 0000000..1c8f111
--- /dev/null
@@ -0,0 +1,84 @@
+ ------
+ Π Π°Π±ΠΎΡ‚Π° Ρ ΠΊΡΡˆΠΈΡ€ΡƒΡŽΡ‰Π΅ΠΉ Π²Π΅Ρ€ΡΠΈΠ΅ΠΉ 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>>>.\
+  Π’ Ρ‡Π΅ΠΌ ΠΆΠ΅ Π΅Ρ‘ ΠΏΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π°?
+
+===
+
+  Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ Ρ ΠΊΡΡˆΠΈΡ€ΡƒΡŽΡ‰Π΅ΠΉ Π²Π΅Ρ€ΡΠΈΠ΅ΠΉ ΠΈΠ½Ρ‚СрфСйса ΠΏΡ€ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π·Π°ΠΏΡ€ΠΎΡΠ°Ρ… Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚Π΅ 
+  Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΎΠ±ΡŠΡ‘ΠΌ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ. ΠΠ°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΈ Π·Π°ΠΏΡ€ΠΎΡΠ΅ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΡ… ΠΌΠ°Ρ‚Ρ‡Π΅ΠΉ Π² Π²Ρ‹Π±ΠΎΡ€ΠΊΠ΅ Π±ΡƒΠ΄ΡƒΡ‚ 
+  ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒΡΡ, ΠΏΠΎΠΌΠΈΠΌΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, ΡΡΡ‹Π»ΠΊΠΈ Π½Π° Ρ‚ΡƒΡ€Π½ΠΈΡ€ (ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ <<<Event>>>), Π° Ρ‚Π°ΠΊΠΆΠ΅ Π½Π° ΠΈΠ³Ρ€ΠΎΠΊΠΎΠ²,
+  ΡƒΡ‡Π°ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΌΠ°Ρ‚Ρ‡Π΅ (ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ <<<Player>>>):
+
++-------
+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();
++-------
diff --git a/src/site/ru/apt/index.apt.vm b/src/site/ru/apt/index.apt.vm
new file mode 100644 (file)
index 0000000..80db9d3
--- /dev/null
@@ -0,0 +1,58 @@
+ ------
+ Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅
+ ------
+ Dmitry Samoshin aka gotty
+ ------
+ 2017-01-22
+ ------
+
+~~ 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
+
+${project.name}
+
+  Hedgecode Snooker Score ΠΏΡ€Π΅Π΄ΡΡ‚авляСт ΡΠΎΠ±ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ Ρ Π½Π°Π±ΠΎΡ€ΠΎΠΌ API ΡΡƒΡ‰Π½ΠΎΡΡ‚Π΅ΠΉ, ΠΊΠΎΡ‚орая
+  ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² ΠΊΠ»ΠΈΠ΅Π½Ρ‚ских Java-прилоТСниях, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ… ΡΠ²ΠΎΠ΅ΠΉ Ρ†Π΅Π»ΡŒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅
+  ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°Ρ… ΡΠ½ΡƒΠΊΠ΅Ρ€Π½Ρ‹Ρ… ΠΌΠ°Ρ‚Ρ‡Π΅ΠΉ, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΎ ΠΏΡ€ΠΎΡ‡Π΅ΠΉ ΡΡ‚атистичСской ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΈΠ· ΠΌΠΈΡ€Π° ΡΠ½ΡƒΠΊΠ΅Ρ€Π°.
+
+  Π’ся ΠΏΠΎΠ»Π΅Π·Π½Π°Ρ ΠΈΠ½Ρ„ормация Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅Ρ‚ся ΠΏΠΎ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρƒ HTTP Ρ ΠΏΠΎΡ€Ρ‚Π°Π»Π° {{{http://snooker.org/}snooker.org}},
+  ΠΏΠΎΡΡ‚ΠΎΠΌΡƒ Π΄Π»Ρ Ρ„ункционирования ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΡ… Π΄Π°Π½Π½ΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ Π΄ΠΎΡΡ‚ΡƒΠΏ Π² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚.
+
+  Π’Скущая Π²Π΅Ρ€ΡΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ:
+  {{{http://repo.hedgecode.org/content/repositories/releases/org/hedgecode/snooker/${project.artifactId}/${project.version}/${project.artifactId}-${project.version}.jar}${project.version}}}
+
+  <<ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅>>: <ВсС Π²Π΅Ρ€ΡΠΈΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π΄ΠΎ Π²Π΅Ρ€ΡΠΈΠΈ 1.0 Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒΡΡ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½Ρ‹ΠΌΠΈ.>
+
+* Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅
+
+  ΠžΠ±Ρ‰ΠΈΠ΅ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΠΈ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½ΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π½Π° {{{./usage.html}этой ΡΡ‚Ρ€Π°Π½ΠΈΡ†Π΅}}.
+
+  ΠžΠΏΠΈΡΠ°Π½ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΎΡΠ½ΠΎΠ²Π½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π½Π°Ρ…одится Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ {{{./faq.html}Π§Π°Π’ΠΎ}}.
+
+  ΠΠ΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΠΎΠ»Π΅Π΅ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Π΅ ΡΠ»ΡƒΡ‡Π°ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΎΠΏΠΈΡΠ°Π½Ρ‹ Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ…, ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Ρ… Π½ΠΈΠΆΠ΅.
+
+* ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹
+
+  Π§Ρ‚ΠΎΠ±Ρ‹ Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠ½ΡΡ‚ΡŒ ΠΎΠΏΠΈΡΡ‹Π²Π°Π΅ΠΌΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌ:
+
+  * {{{./examples/work-with-the-cached-api.html}Π Π°Π±ΠΎΡ‚Π° Ρ ΠΊΡΡˆΠΈΡ€ΡƒΡŽΡ‰Π΅ΠΉ Π²Π΅Ρ€ΡΠΈΠ΅ΠΉ API}}
+
+  * {{{./examples/use-sort-in-collections.html}ИспользованиС ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…}}
+
+  * {{{./examples/handle-the-api-exceptions.html}ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ, Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‰ΠΈΡ… ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ Ρ API}}
+
+  []
diff --git a/src/site/ru/apt/usage.apt.vm b/src/site/ru/apt/usage.apt.vm
new file mode 100644 (file)
index 0000000..0a74c70
--- /dev/null
@@ -0,0 +1,125 @@
+ ------
+ Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅
+ ------
+ Dmitry Samoshin aka gotty
+ ------
+ 2017-01-22
+ ------
+
+~~ 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
+
+ИспользованиС
+
+* ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΡ Π² Java-прилоТСниях
+
+  Π¨Π°Π±Π»ΠΎΠ½ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π΄Π»Ρ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Java-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Ρ
+  ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ Maven-Ρ„Π°ΠΉΠ»Π° pom.xml ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ Π½ΠΈΠΆΠ΅:
+
++-----
+<project>
+    ...
+    <dependencies>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>${project.artifactId}</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+    </dependencies>
+    ...
+</project>
++-----
+
+  <<ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅>>: Maven 3.0 Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅,
+  Π΅ΡΠ»ΠΈ Π²Ρ‹ Π½Π΅ ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ Π²Π΅Ρ€ΡΠΈΡŽ ΠΏΠ»Π°Π³ΠΈΠ½Π°.
+
+* Π Π°Π±ΠΎΡ‚Π° Ρ Java-ΠΊΠΎΠ΄ΠΎΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ
+
+  ΠŸΠΎΡΠ»Π΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΊ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρƒ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Ρ Π΅Ρ‘ ΠΊΠΎΠ΄ΠΎΠΌ.\
+  Π”ля Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ€ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ³ΠΎ ΠΈΠ½Ρ‚СрфСйса Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, Π½ΡƒΠΆΠ½ΠΎ 
+  Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄:
+
++-----
+SnookerScoreAPI api = Snooker.API();
++-----
+
+  <<<SnookerScoreAPI>>> ΠΏΡ€Π΅Π΄ΡΡ‚авляСт ΡΠΎΠ±ΠΎΠΉ ΠΈΠ½Ρ‚СрфСйс Ρ Π½Π°Π±ΠΎΡ€ΠΎΠΌ Π²ΡΠ΅Ρ… ΠΎΡΠ½ΠΎΠ²Π½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²,
+  ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Ρ‡Π΅Ρ€Π΅Π· ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹-сущности ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π΄ΠΎΡΡ‚ΡƒΠΏ ΠΊ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ ΡΠ΅Π·ΠΎΠ½Π°Ρ…,
+  Ρ‚ΡƒΡ€Π½ΠΈΡ€Π°Ρ…, ΠΌΠ°Ρ‚Ρ‡Π°Ρ…, ΠΈΠ³Ρ€ΠΎΠΊΠ°Ρ… ΠΈ ΠΈΡ… Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³Π°Ρ….
+  
+  Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° ΠΏΡ€Π΅Π΄ΠΎΡΡ‚авляСт Π΄Π²Π΅ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π²Ρ‹ΡˆΠ΅ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ ΠΈΠ½Ρ‚СрфСйса: Ρ ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ
+  Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎ ΠΈΠ³Ρ€ΠΎΠΊΠ°ΠΌ ΠΈ ΡΠΎΠ±Ρ‹Ρ‚иям (Ρ‚ΡƒΡ€Π½ΠΈΡ€Π°ΠΌ) Π²Π½ΡƒΡ‚Ρ€ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΈ Π±Π΅Π· ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ.
+  Π Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡ ΠΈΠ½Ρ‚СрфСйса Ρ ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠ²Π»ΡΠ΅Ρ‚ся Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ "ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ".\
+  Π”оступ ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· Π΄Π²ΡƒΡ… Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΉ ΠΈΠ½Ρ‚СрфСйса ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ ΠΏΡƒΡ‚Ρ‘ΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ
+  ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Π²Ρ‹Π·ΠΎΠ²ΠΎΠ²:
+
++-----
+SnookerScoreAPI cachedApi = Snooker.cachedAPI(); /* API with cache */
+...
+SnookerScoreAPI uncachedApi = Snooker.uncachedAPI(); /* API without cache */
++-----
+
+  Π”Π°Π»ΡŒΠ½Π΅ΠΉΡˆΠ°Ρ Ρ€Π°Π±ΠΎΡ‚Π° Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ ΠΏΡ€Π΅Π΄ΡΡ‚авляСт ΡΠΎΠ±ΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²
+  ΠΈΠ½Ρ‚СрфСйса <<<SnookerScoreAPI>>> Π΄Π»Ρ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΡ ΡΠΏΠΈΡΠΊΠΎΠ² Ρ‚ΡƒΡ€Π½ΠΈΡ€ΠΎΠ², ΠΈΠ³Ρ€ΠΎΠΊΠΎΠ², Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΡ… ΠΌΠ°Ρ‚Ρ‡Π΅ΠΉ
+  ΠΈ ΠΏΡ€ΠΎΡ‡Π΅ΠΉ ΡΡ‚атистичСской ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ.\
+  ΠΠ°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΏΠΎ ΠΌΠ°Ρ‚Ρ‡Π°ΠΌ, ΠΏΡ€ΠΎΡ…одящим Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚, Π΄ΠΎΡΡ‚Π°Ρ‚ΠΎΡ‡Π½ΠΎ
+  Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄:
+
++-----
+SnookerScoreAPI api = Snooker.API();
+OngoingMatches matches = api.getOngoingMatches();
++-----
+
+  ΠžΠΏΠΈΡΠ°Π½ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΈΠ½Ρ‚СрфСйса ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ {{{./faq.html}Π§Π°Π’ΠΎ}},
+  Π° Π½Π° ΡΡ‚Ρ€Π°Π½ΠΈΡ†Π°Ρ… Ρ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Π½Ρ‹ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Ρ‡Π°ΡΡ‚ΠΎ Π²ΡΡ‚Ρ€Π΅Ρ‡Π°ΡŽΡ‰ΠΈΠ΅ΡΡ ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΠΈ.
+  Π‘ΠΈΠ³Π½Π°Ρ‚ΡƒΡ€Π° ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ², Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠ½Ρ„ормация ΠΏΠΎ Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΡΡƒΡ‰Π½ΠΎΡΡ‚ям Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½Π° Π²
+  {{{./apidocs/}JavaDoc}}.
+
+* Π—апуск Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡ‚Ρ€ΠΎΠΊΠΈ
+
+  Π’ Π΄Π°Π½Π½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ ΠΈΠΌΠ΅Π΅Ρ‚ся Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²Π΅ΡΡ‚ΠΈ Π·Π°ΠΏΡƒΡΠΊ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡ‚Ρ€ΠΎΠΊΠΈ Π΄Π»Ρ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ
+  ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚ности ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Ρ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΌ ΠΏΠΎΡ€Ρ‚Π°Π»ΠΎΠΌ {{{http://snooker.org/}snooker.org}}.
+  Π—апуск Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡ‚Ρ€ΠΎΠΊΠΈ ΠΎΡΡƒΡ‰Π΅ΡΡ‚вляСтся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:
+
++-----
+java -jar ${project.artifactId}-${project.version}.jar
++-----
+
+  Π•ΡΠ»ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΎΡ‚Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ, Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ ΡΠΏΠΈΡΠΎΠΊ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΡ… ΠΈ ΠΏΡ€Π΅Π΄ΡΡ‚оящих
+  Ρ‚ΡƒΡ€Π½ΠΈΡ€ΠΎΠ² ΠΏΠΎ ΡΠ½ΡƒΠΊΠ΅Ρ€Ρƒ.\  
+  ΠŸΡ€ΠΈΠΌΠ΅Ρ€Π½Ρ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π²Ρ‹Π²ΠΎΠ΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ Π½ΠΈΠΆΠ΅:
+
++-----
+********************************************************************************
+                    Welcome to Hedgecode Snooker Score API!
+                -----------------------------------------------
+         It is an API library for portal snooker.org, which contains
+      the results of snooker competitions and other snooker information.
+    This library provides a set of entity objects that can be used in client
+    applications (to inform about the results of snooker), developed in Java.
+********************************************************************************
+  Current Snooker Events:
+     China Open Qualifiers [24.01.2017 - 27.01.2017] (England, Preston)
+********************************************************************************
+  Upcoming Snooker Events:
+     German Masters [01.02.2017 - 05.02.2017] (Germany, Berlin)
+     World Grand Prix [06.02.2017 - 12.02.2017] (England, Preston)
+     Welsh Open [13.02.2017 - 19.02.2017] (Wales, Cardiff)
+     Connie Gough Memorial Trophy [18.02.2017 - 18.02.2017] (England, Dunstable)
+     Championship League - Group 5 [20.02.2017 - 21.02.2017] (England, Coventry)
+********************************************************************************
++-----
diff --git a/src/site/ru/fml/faq.fml b/src/site/ru/fml/faq.fml
new file mode 100644 (file)
index 0000000..f4d4262
--- /dev/null
@@ -0,0 +1,138 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+  ~ 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.
+-->
+
+<faqs xmlns="http://maven.apache.org/FML/1.0.1"
+      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+      xsi:schemaLocation="http://maven.apache.org/FML/1.0.1 http://maven.apache.org/xsd/fml-1.0.1.xsd"
+      title="Часто Π—Π°Π΄Π°Π²Π°Π΅ΠΌΡ‹Π΅ Π’опросы">
+    <part id="general">
+        <title>ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ Π²ΠΎΠΏΡ€ΠΎΡΡ‹:</title>
+        <faq id="how-to-get-event">
+            <question>
+                ΠšΠ°ΠΊ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΠΎΠ»Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΏΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌΡƒ Ρ‚ΡƒΡ€Π½ΠΈΡ€Ρƒ?
+            </question>
+            <answer>
+                <p><pre>Event event = Snooker.API().getEvent(eventId);</pre>
+                Π³Π΄Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ <code>eventId</code> - ID Ρ‚ΡƒΡ€Π½ΠΈΡ€Π°.
+                </p>
+            </answer>
+        </faq>
+        <faq id="how-to-get-match">
+            <question>
+                ΠšΠ°ΠΊ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΠΎΠ»Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΏΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌΡƒ ΠΌΠ°Ρ‚Ρ‡Ρƒ?
+            </question>
+            <answer>
+                <p><pre>Match match = Snooker.API().getMatch(eventId, roundId, matchNumber);</pre>
+                Π³Π΄Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ <code>eventId</code> - ID Ρ‚ΡƒΡ€Π½ΠΈΡ€Π°, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΈΠ³Ρ€Π°Π΅Ρ‚ся ΠΈΡΠΊΠΎΠΌΡ‹ΠΉ ΠΌΠ°Ρ‚Ρ‡;
+                <code>roundId</code> - ID Ρ€Π°ΡƒΠ½Π΄Π° Ρ‚ΡƒΡ€Π½ΠΈΡ€Π°; <code>matchNumber</code> - Π½ΠΎΠΌΠ΅Ρ€ ΠΌΠ°Ρ‚Ρ‡Π° Π² Ρ€Π°ΡƒΠ½Π΄Π΅.
+                </p>
+            </answer>
+        </faq>
+        <faq id="how-to-get-player">
+            <question>
+                ΠšΠ°ΠΊ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΠΎΠ»Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΏΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌΡƒ ΠΈΠ³Ρ€ΠΎΠΊΡƒ?
+            </question>
+            <answer>
+                <p><pre>Player player = Snooker.API().getPlayer(int playerId);</pre>
+                Π³Π΄Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ <code>playerId</code> - ID ΠΈΠ³Ρ€ΠΎΠΊΠ°.
+                </p>
+            </answer>
+        </faq>
+        <faq id="how-to-get-season-events">
+            <question>
+                ΠšΠ°ΠΊ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΏΠΎ Π²ΡΠ΅ΠΌ Ρ‚ΡƒΡ€Π½ΠΈΡ€Π°ΠΌ Π² ΡΠ΅Π·ΠΎΠ½Π΅?
+            </question>
+            <answer>
+                <p><pre>Events seasonEvents = Snooker.API().getSeasonEvents(season);</pre>
+                Π³Π΄Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ <code>season</code> - ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΊΠ»Π°ΡΡΠ° <code>Season</code>, Π·Π°Π΄Π°ΡŽΡ‰ΠΈΠΉ
+                ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ ΡΠ΅Π·ΠΎΠ½, ΠΈΠ»ΠΈ ΠΆΠ΅ <code>Season.ALL</code> - Π΄Π»Ρ Π²ΡΠ΅Ρ… Π΄ΠΎΡΡ‚ΡƒΠΏΠ½Ρ‹Ρ… ΡΠ΅Π·ΠΎΠ½ΠΎΠ².
+                </p>
+            </answer>
+        </faq>
+        <faq id="how-to-get-event-matches">
+            <question>
+                ΠšΠ°ΠΊ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΏΠΎ Π²ΡΠ΅ΠΌ ΠΌΠ°Ρ‚Ρ‡Π°ΠΌ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ Ρ‚ΡƒΡ€Π½ΠΈΡ€Π°?
+            </question>
+            <answer>
+                <p><pre>Matches eventMatches = Snooker.API().getEventMatches(eventId);</pre>
+                Π³Π΄Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ <code>eventId</code> - ID Ρ‚ΡƒΡ€Π½ΠΈΡ€Π°.
+                </p>
+            </answer>
+        </faq>
+        <faq id="how-to-get-ongoing-matches">
+            <question>
+                ΠšΠ°ΠΊ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΏΠΎ ΠΌΠ°Ρ‚Ρ‡Π°ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΎΡ…одят Π² Π΄Π°Π½Π½Ρ‹ΠΌ ΠΌΠΎΠΌΠ΅Π½Ρ‚?
+            </question>
+            <answer>
+                <p><pre>OngoingMatches matches = Snooker.API().getOngoingMatches();</pre>
+                </p>
+            </answer>
+        </faq>
+        <faq id="how-to-get-player-matches">
+            <question>
+                ΠšΠ°ΠΊ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΏΠΎ Π²ΡΠ΅ΠΌ ΠΌΠ°Ρ‚Ρ‡Π°ΠΌ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ ΠΈΠ³Ρ€ΠΎΠΊΠ° Π² ΡΠ΅Π·ΠΎΠ½Π΅?
+            </question>
+            <answer>
+                <p><pre>Matches playerMatches = Snooker.API().getPlayerMatches(playerId, season);</pre>
+                Π³Π΄Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ <code>playerId</code> - ID ΠΈΠ³Ρ€ΠΎΠΊΠ°,
+                Π° <code>season</code> - ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΊΠ»Π°ΡΡΠ° <code>Season</code>, Π·Π°Π΄Π°ΡŽΡ‰ΠΈΠΉ
+                ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ ΡΠ΅Π·ΠΎΠ½, ΠΈΠ»ΠΈ ΠΆΠ΅ <code>Season.ALL</code> - Π΄Π»Ρ Π²ΡΠ΅Ρ… Π΄ΠΎΡΡ‚ΡƒΠΏΠ½Ρ‹Ρ… ΡΠ΅Π·ΠΎΠ½ΠΎΠ².
+                </p>
+            </answer>
+        </faq>
+        <faq id="how-to-get-event-players">
+            <question>
+                ΠšΠ°ΠΊ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΏΠΎ Π²ΡΠ΅ΠΌ ΠΈΠ³Ρ€ΠΎΠΊΠ°ΠΌ Π² ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌ Ρ‚ΡƒΡ€Π½ΠΈΡ€Π΅?
+            </question>
+            <answer>
+                <p><pre>Players eventPlayers = Snooker.API().getEventPlayers(eventId);</pre>
+                Π³Π΄Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ <code>eventId</code> - ID Ρ‚ΡƒΡ€Π½ΠΈΡ€Π°.
+                </p>
+            </answer>
+        </faq>
+        <faq id="how-to-get-players">
+            <question>
+                ΠšΠ°ΠΊ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΏΠΎ Π²ΡΠ΅ΠΌ ΠΈΠ³Ρ€ΠΎΠΊΠ°ΠΌ Π² ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌ ΡΠ΅Π·ΠΎΠ½Π΅?
+            </question>
+            <answer>
+                <p><pre>Players players = Snooker.API().getPlayers(season, category);</pre>
+                Π³Π΄Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ <code>season</code> - ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΊΠ»Π°ΡΡΠ° <code>Season</code>, Π·Π°Π΄Π°ΡŽΡ‰ΠΈΠΉ
+                ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ ΡΠ΅Π·ΠΎΠ½, ΠΈΠ»ΠΈ ΠΆΠ΅ <code>Season.ALL</code> - Π΄Π»Ρ Π²ΡΠ΅Ρ… Π΄ΠΎΡΡ‚ΡƒΠΏΠ½Ρ‹Ρ… ΡΠ΅Π·ΠΎΠ½ΠΎΠ²,
+                Π° <code>category</code> - ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΊΠ»Π°ΡΡΠ° <code>PlayerCategory</code>,
+                Π·Π°Π΄Π°ΡŽΡ‰ΠΈΠΉ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΡŽ ΠΈΠ³Ρ€ΠΎΠΊΠΎΠ² (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, <code>PlayerCategory.PRO</code>).
+                </p>
+            </answer>
+        </faq>
+    </part>
+    <part id="additional">
+        <title>Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ:</title>
+        <faq id="how-to-get-rankings">
+            <question>
+                ΠšΠ°ΠΊ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΏΠΎ Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³Π°ΠΌ/Π·Π°Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹ΠΌ ΡΡƒΠΌΠΌΠ°ΠΌ Π²ΡΠ΅Ρ… ΠΈΠ³Ρ€ΠΎΠΊΠΎΠ² Π² ΡΠ΅Π·ΠΎΠ½Π΅?
+            </question>
+            <answer>
+                <p><pre>Rankings rankings = Snooker.API().getRankings(season, rankingType);</pre>
+                Π³Π΄Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ <code>season</code> - ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΊΠ»Π°ΡΡΠ° <code>Season</code>, Π·Π°Π΄Π°ΡŽΡ‰ΠΈΠΉ
+                ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ ΡΠ΅Π·ΠΎΠ½, ΠΈΠ»ΠΈ ΠΆΠ΅ <code>Season.ALL</code> - Π΄Π»Ρ Π²ΡΠ΅Ρ… Π΄ΠΎΡΡ‚ΡƒΠΏΠ½Ρ‹Ρ… ΡΠ΅Π·ΠΎΠ½ΠΎΠ²,
+                Π° <code>rankingType</code> - ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΊΠ»Π°ΡΡΠ° <code>RankingType</code>,
+                Π·Π°Π΄Π°ΡŽΡ‰ΠΈΠΉ Ρ‚ΠΈΠΏ Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³Π° (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, <code>RankingType.MoneyRankings</code>).
+                </p>
+            </answer>
+        </faq>
+    </part>
+</faqs>
diff --git a/src/site/ru/xdoc/download.xml.vm b/src/site/ru/xdoc/download.xml.vm
new file mode 100644 (file)
index 0000000..fdbd3c8
--- /dev/null
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+  ~ 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.
+-->
+
+<document>
+    <properties>
+        <title>Π‘ΠΊΠ°Ρ‡Π°Ρ‚ΡŒ</title>
+    </properties>
+    <body>
+        <section name="Π—Π°Π³Ρ€ΡƒΠ·ΠΊΠ° ${project.name}">
+
+            <p>${project.name} ${project.version} Π΄ΠΎΡΡ‚ΡƒΠΏΠ΅Π½ ΠΊΠ°ΠΊ Π² Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ (JAR Π°Ρ€Ρ‚Π΅Ρ„Π°ΠΊΡ‚), Ρ‚Π°ΠΊ ΠΈ Π² ΠΈΡΡ…ΠΎΠ΄Π½Ρ‹Ρ… ΠΊΠΎΠ΄Π°Ρ….</p>
+
+            <subsection name="${project.name} ${project.version} Π”Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΉ Π€ΠΎΡ€ΠΌΠ°Ρ‚">
+                <p>
+                    Π’Скущая ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½Π°Ρ Π²Π΅Ρ€ΡΠΈΡ ${project.name}:
+                    <a href="http://repo.hedgecode.org/content/repositories/releases/org/hedgecode/snooker/${project.artifactId}/${project.version}/${project.artifactId}-${project.version}.jar">${project.artifactId}-${project.version}.jar</a>
+                    ΠΈ Π΅Ρ‘ <a href="http://repo.hedgecode.org/content/repositories/releases/org/hedgecode/snooker/${project.artifactId}/${project.version}/${project.artifactId}-${project.version}.jar.md5">MD5</a> ΡΡƒΠΌΠΌΠ°.
+                </p>
+            </subsection>
+
+            <subsection name="ΠŸΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠ΅ Π’Срсии">
+                <p>Π‘Ρ‚Π°Ρ€Ρ‹Π΅ release-вСрсии ${project.artifactId} Π΄ΠΎΡΡ‚ΡƒΠΏΠ½Ρ‹ Π½Π° ΡΡ‚Ρ€Π°Π½ΠΈΡ†Π΅ <a href="http://repo.hedgecode.org/content/repositories/releases/org/hedgecode/snooker/${project.artifactId}/">Hedgecode Release Repository</a>.</p>
+                <p>Π‘Ρ‚Π°Ρ€Ρ‹Π΅ snapshot-вСрсии ${project.artifactId} Π΄ΠΎΡΡ‚ΡƒΠΏΠ½Ρ‹ Π½Π° ΡΡ‚Ρ€Π°Π½ΠΈΡ†Π΅ <a href="http://repo.hedgecode.org/content/repositories/snapshots/org/hedgecode/snooker/${project.artifactId}/">Hedgecode Snapshot Repository</a>.</p>
+            </subsection>
+
+            <subsection name="${project.name} ${project.version} Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠšΠΎΠ΄">
+                <p>Архивы Ρ javadoc ΠΈ ΠΈΡΡ…ΠΎΠ΄Π½Ρ‹ΠΌΠΈ ΠΊΠΎΠ΄Π°ΠΌΠΈ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π²Π΅Ρ€ΡΠΈΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ:
+                    <a href="http://repo.hedgecode.org/content/repositories/releases/org/hedgecode/snooker/${project.artifactId}/${project.version}/${project.artifactId}-${project.version}-javadoc.jar">javadoc</a>,
+                    <a href="http://repo.hedgecode.org/content/repositories/releases/org/hedgecode/snooker/${project.artifactId}/${project.version}/${project.artifactId}-${project.version}-sources.jar">sources</a>.
+                </p>
+                <p>Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ ${project.artifactId} Π΄ΠΎΡΡ‚ΡƒΠΏΠ΅Π½ Π² <a href="http://svn.hedgecode.org/lib/${project.artifactId}/trunk/">Hedgecode Subversion Repository</a>.</p>
+                <p>Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ ${project.name} Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚раняСтся ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ <a href="http://www.apache.org/licenses/">Apache License, version 2.0</a>.</p>
+            </subsection>
+
+        </section>
+    </body>
+</document>
+
diff --git a/src/site/site.xml b/src/site/site.xml
new file mode 100644 (file)
index 0000000..d099627
--- /dev/null
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+  ~ 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.
+-->
+
+<project xmlns="http://maven.apache.org/DECORATION/1.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/DECORATION/1.0.0 http://maven.apache.org/xsd/decoration-1.0.0.xsd">
+    <body>
+        <breadcrumbs>
+            <item name="${project.artifactId}" href="/"/>
+        </breadcrumbs>
+        <links>
+            <item name="ENG" href="index.html"/>
+            <item name="RUS" href="ru/index.html"/>
+        </links>
+        <menu name="Overview">
+            <item name="Introduction" href="index.html"/>
+            <item name="Usage" href="usage.html"/>
+            <item name="FAQ" href="faq.html"/>
+            <item name="License" href="http://www.apache.org/licenses/"/>
+            <item name="Download" href="download.html"/>
+        </menu>
+        <menu name="Examples">
+            <item name="Work with cached API" href="examples/work-with-the-cached-api.html"/>
+            <item name="Use data sorting" href="examples/use-sort-in-collections.html"/>
+            <item name="Handle API Exceptions" href="examples/handle-the-api-exceptions.html"/>
+        </menu>
+        <menu ref="reports"/>
+    </body>
+</project>
diff --git a/src/site/site_ru.xml b/src/site/site_ru.xml
new file mode 100644 (file)
index 0000000..b19fe08
--- /dev/null
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+  ~ 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.
+-->
+
+<project xmlns="http://maven.apache.org/DECORATION/1.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/DECORATION/1.0.0 http://maven.apache.org/xsd/decoration-1.0.0.xsd">
+    <body>
+        <breadcrumbs>
+            <item name="${project.artifactId}" href="/"/>
+        </breadcrumbs>
+        <links>
+            <item name="ENG" href="../index.html"/>
+            <item name="RUS" href="index.html"/>
+        </links>
+        <menu name="ОписаниС">
+            <item name="Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅" href="index.html"/>
+            <item name="ИспользованиС" href="usage.html"/>
+            <item name="Π§Π°Π’ΠΎ" href="faq.html"/>
+            <item name="ЛицСнзия" href="http://www.apache.org/licenses/"/>
+            <item name="Π‘ΠΊΠ°Ρ‡Π°Ρ‚ΡŒ" href="download.html"/>
+        </menu>
+        <menu name="ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹">
+            <item name="Π Π°Π±ΠΎΡ‚Π° Ρ ΠΊΡΡˆΠΈΡ€ΡƒΡŽΡ‰Π΅ΠΉ Π²Π΅Ρ€ΡΠΈΠ΅ΠΉ API" href="examples/work-with-the-cached-api.html"/>
+            <item name="ИспользованиС ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…" href="examples/use-sort-in-collections.html"/>
+            <item name="ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ, Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‰ΠΈΡ… ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ Ρ API" href="examples/handle-the-api-exceptions.html"/>
+        </menu>
+        <menu ref="reports"/>
+    </body>
+</project>
diff --git a/src/site/xdoc/download.xml.vm b/src/site/xdoc/download.xml.vm
new file mode 100644 (file)
index 0000000..7bedc4a
--- /dev/null
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+  ~ 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.
+-->
+
+<document>
+    <properties>
+        <title>Download</title>
+    </properties>
+    <body>
+        <section name="Download ${project.name}">
+
+            <p>${project.name} ${project.version} is distributed in ready-made binary format (jar artifact) and source format.</p>
+
+            <subsection name="${project.name} ${project.version} Binary Format">
+                <p>
+                    The current stable version of ${project.name}:
+                    <a href="http://repo.hedgecode.org/content/repositories/releases/org/hedgecode/maven/plugins/${project.artifactId}/${project.version}/${project.artifactId}-${project.version}.jar">${project.artifactId}-${project.version}.jar</a>
+                    and its <a href="http://repo.hedgecode.org/content/repositories/releases/org/hedgecode/maven/plugins/${project.artifactId}/${project.version}/${project.artifactId}-${project.version}.jar.md5">MD5</a> sum.
+                </p>
+            </subsection>
+
+            <subsection name="Previous Versions">
+                <p>Older releases can be found on ${project.artifactId} page of <a href="http://repo.hedgecode.org/content/repositories/releases/org/hedgecode/maven/plugins/${project.artifactId}/">Hedgecode Release Repository</a>.</p>
+                <p>Older snapshots can be found on ${project.artifactId} page of <a href="http://repo.hedgecode.org/content/repositories/snapshots/org/hedgecode/maven/plugins/${project.artifactId}/">Hedgecode Snapshot Repository</a>.</p>
+            </subsection>
+
+            <subsection name="${project.name} ${project.version} Source Code">
+                <p>Javadoc and Sources archives of the current version of the library:
+                    <a href="http://repo.hedgecode.org/content/repositories/releases/org/hedgecode/maven/plugins/${project.artifactId}/${project.version}/${project.artifactId}-${project.version}-javadoc.jar">javadoc</a>,
+                    <a href="http://repo.hedgecode.org/content/repositories/releases/org/hedgecode/maven/plugins/${project.artifactId}/${project.version}/${project.artifactId}-${project.version}-sources.jar">sources</a>.
+                </p>
+                <p>Source code of the ${project.artifactId} can be found on <a href="http://svn.hedgecode.org/maven/plugins/trunk/${project.artifactId}/">Hedgecode Subversion Repository</a>.</p>
+                <p>${project.name} source code is distributed under the <a href="http://www.apache.org/licenses/">Apache License, version 2.0</a>.</p>
+            </subsection>
+
+        </section>
+    </body>
+</document>
+