Skip to content

Commit 261d755

Browse files
committed
feat: #109 Switch the standard dictionaries tops generations to the json configuration instead of hard-coded java classes.
1 parent 2835e74 commit 261d755

21 files changed

+144
-396
lines changed

kgstatsSrv/src/main/java/ru/klavogonki/statistics/export/vocabulary/standard/AbraTopExporter.java

Lines changed: 0 additions & 33 deletions
This file was deleted.

kgstatsSrv/src/main/java/ru/klavogonki/statistics/export/vocabulary/standard/CharsTopExporter.java

Lines changed: 0 additions & 33 deletions
This file was deleted.

kgstatsSrv/src/main/java/ru/klavogonki/statistics/export/vocabulary/standard/DigitsTopExporter.java

Lines changed: 0 additions & 33 deletions
This file was deleted.

kgstatsSrv/src/main/java/ru/klavogonki/statistics/export/vocabulary/standard/MarathonTopExporter.java

Lines changed: 0 additions & 33 deletions
This file was deleted.

kgstatsSrv/src/main/java/ru/klavogonki/statistics/export/vocabulary/standard/NoErrorTopExporter.java

Lines changed: 0 additions & 33 deletions
This file was deleted.

kgstatsSrv/src/main/java/ru/klavogonki/statistics/export/vocabulary/standard/NormalTopExporter.java

Lines changed: 0 additions & 33 deletions
This file was deleted.

kgstatsSrv/src/main/java/ru/klavogonki/statistics/export/vocabulary/standard/ReferatsTopExporter.java

Lines changed: 0 additions & 51 deletions
This file was deleted.

kgstatsSrv/src/main/java/ru/klavogonki/statistics/export/vocabulary/standard/SprintTopExporter.java

Lines changed: 0 additions & 33 deletions
This file was deleted.

kgstatsSrv/src/main/java/ru/klavogonki/statistics/export/vocabulary/standard/StandardVocabularyTopExporterDefaultImpl.java

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,25 +38,37 @@ private LoggerWrapper getLoggerWrapper() {
3838

3939
@Override
4040
public List<PlayerVocabularyStatsEntity> getPlayersByBestSpeed(ExportContext context) {
41-
List<PlayerVocabularyStatsEntity> players = repository.findByVocabularyCodeEqualsAndRacesCountGreaterThanEqualAndPlayerBlockedEqualsOrderByBestSpeedDesc(vocabularyCode(), minRacesCount(), PlayerEntity.NOT_BLOCKED);
41+
PlayerVocabularyStatsRepository repo = getRepositorySafe(context);
42+
43+
List<PlayerVocabularyStatsEntity> players = repo.findByVocabularyCodeEqualsAndRacesCountGreaterThanEqualAndPlayerBlockedEqualsOrderByBestSpeedDesc(vocabularyCode(), minRacesCount(), PlayerEntity.NOT_BLOCKED);
4244
logger().debug("Total players by best speed, min total races = {}: {}", minRacesCount(), players.size());
4345

4446
return players;
4547
}
4648

4749
@Override
4850
public List<PlayerVocabularyStatsEntity> getPlayersByRacesCount(ExportContext context) {
49-
List<PlayerVocabularyStatsEntity> players = repository.findByVocabularyCodeEqualsAndRacesCountGreaterThanEqualAndPlayerBlockedEqualsOrderByRacesCountDesc(vocabularyCode(), minRacesCount(), PlayerEntity.NOT_BLOCKED);
51+
PlayerVocabularyStatsRepository repo = getRepositorySafe(context);
52+
53+
List<PlayerVocabularyStatsEntity> players = repo.findByVocabularyCodeEqualsAndRacesCountGreaterThanEqualAndPlayerBlockedEqualsOrderByRacesCountDesc(vocabularyCode(), minRacesCount(), PlayerEntity.NOT_BLOCKED);
5054
logger().debug("Total players by races count, min total races = {}: {}", minRacesCount(), players.size());
5155

5256
return players;
5357
}
5458

5559
@Override
5660
public List<PlayerVocabularyStatsEntity> getPlayersByHaul(ExportContext context) {
57-
List<PlayerVocabularyStatsEntity> players = repository.findByVocabularyCodeEqualsAndRacesCountGreaterThanEqualAndPlayerBlockedEqualsOrderByHaulDesc(vocabularyCode(), minRacesCount(), PlayerEntity.NOT_BLOCKED);
61+
PlayerVocabularyStatsRepository repo = getRepositorySafe(context);
62+
63+
List<PlayerVocabularyStatsEntity> players = repo.findByVocabularyCodeEqualsAndRacesCountGreaterThanEqualAndPlayerBlockedEqualsOrderByHaulDesc(vocabularyCode(), minRacesCount(), PlayerEntity.NOT_BLOCKED);
5864
logger().debug("Total players by haul, min total races = {}: {}", minRacesCount(), players.size());
5965

6066
return players;
6167
}
68+
69+
private PlayerVocabularyStatsRepository getRepositorySafe(ExportContext context) {
70+
return (this.repository != null)
71+
? this.repository // this.repository is not inherited by the dynamicaally created subclasses
72+
: context.repository;
73+
}
6274
}

kgstatsSrv/src/main/java/ru/klavogonki/statistics/freemarker/Links.java

Lines changed: 8 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,7 @@
33
import lombok.Data;
44
import lombok.extern.log4j.Log4j2;
55
import ru.klavogonki.statistics.export.vocabulary.NonStandardVocabularyGeneratorContext;
6-
import ru.klavogonki.statistics.export.vocabulary.standard.AbraTopExporter;
7-
import ru.klavogonki.statistics.export.vocabulary.standard.CharsTopExporter;
8-
import ru.klavogonki.statistics.export.vocabulary.standard.DigitsTopExporter;
9-
import ru.klavogonki.statistics.export.vocabulary.standard.MarathonTopExporter;
10-
import ru.klavogonki.statistics.export.vocabulary.standard.NoErrorTopExporter;
11-
import ru.klavogonki.statistics.export.vocabulary.standard.NormalTopExporter;
12-
import ru.klavogonki.statistics.export.vocabulary.standard.ReferatsTopExporter;
13-
import ru.klavogonki.statistics.export.vocabulary.standard.SprintTopExporter;
6+
import ru.klavogonki.statistics.export.vocabulary.StandardVocabularyGeneratorContext;
147

158
/**
169
* Object with page and files urls to pass to FreeMarker templates.
@@ -57,25 +50,8 @@ public class Links {
5750

5851
private String playersByRank = PageUrls.PLAYER_BY_RANK;
5952

60-
// vocabularies landing pages
6153
// standard vocabularies
62-
private String normalTopBySpeedPage1 = new NormalTopExporter().topByBestSpeedFirstPageFilePath();
63-
private String abraTopBySpeedPage1 = new AbraTopExporter().topByBestSpeedFirstPageFilePath();
64-
private String referatsTopBySpeedPage1 = new ReferatsTopExporter().topByBestSpeedFirstPageFilePath();
65-
private String noErrorTopBySpeedPage1 = new NoErrorTopExporter().topByBestSpeedFirstPageFilePath();
66-
private String marathonTopBySpeedPage1 = new MarathonTopExporter().topByBestSpeedFirstPageFilePath();
67-
private String charsTopBySpeedPage1 = new CharsTopExporter().topByBestSpeedFirstPageFilePath();
68-
private String digitsTopBySpeedPage1 = new DigitsTopExporter().topByBestSpeedFirstPageFilePath();
69-
private String sprintTopBySpeedPage1 = new SprintTopExporter().topByBestSpeedFirstPageFilePath();
70-
71-
private String normalTopHeader = new NormalTopExporter().headerName();
72-
private String abraTopHeader = new AbraTopExporter().headerName();
73-
private String referatsTopHeader = new ReferatsTopExporter().headerName();
74-
private String noErrorTopHeader = new NoErrorTopExporter().headerName();
75-
private String marathonTopHeader = new MarathonTopExporter().headerName();
76-
private String charsTopHeader = new CharsTopExporter().headerName();
77-
private String digitsTopHeader = new DigitsTopExporter().headerName();
78-
private String sprintTopHeader = new SprintTopExporter().headerName();
54+
private StandardVocabularyGeneratorContext standardDictionaries;
7955

8056
// non-standard vocabularies
8157
private NonStandardVocabularyGeneratorContext nonStandardDictionaries;
@@ -98,10 +74,14 @@ public class Links {
9874
private Links() {
9975
}
10076

101-
public static Links create(NonStandardVocabularyGeneratorContext context) {
77+
public static Links create(
78+
StandardVocabularyGeneratorContext standardVocabularyGeneratorContext,
79+
NonStandardVocabularyGeneratorContext nonStandardVocabularyGeneratorContext
80+
) {
10281
Links links = new Links();
10382

104-
links.nonStandardDictionaries = context;
83+
links.standardDictionaries = standardVocabularyGeneratorContext;
84+
links.nonStandardDictionaries = nonStandardVocabularyGeneratorContext;
10585

10686
return links;
10787
}

0 commit comments

Comments
 (0)