Skip to content

Commit

Permalink
Tidying.
Browse files Browse the repository at this point in the history
  • Loading branch information
grahamkirby committed Nov 28, 2024
1 parent d1d2cc0 commit 949863d
Show file tree
Hide file tree
Showing 8 changed files with 22 additions and 69 deletions.
4 changes: 2 additions & 2 deletions src/main/java/org/grahamkirby/race_timing/common/Race.java
Original file line number Diff line number Diff line change
Expand Up @@ -445,7 +445,7 @@ private List<PrizeCategoryGroup> getPrizeCategoryGroups(final Path prize_categor

Files.readAllLines(prize_categories_path).stream().
filter(line -> !line.startsWith(COMMENT_SYMBOL)).
forEach(line -> {
forEachOrdered(line -> {
final String group_name = line.split(",")[5];

addGroupIfAbsent(groups, group_name);
Expand Down Expand Up @@ -494,7 +494,7 @@ private Map<String, String> loadImportCategoryMap(final String path_key, final S

Files.readAllLines(category_map_path).stream().
filter(line -> !line.startsWith(COMMENT_SYMBOL)).
forEach(line -> {
forEachOrdered(line -> {

if (entry_column_map_string == null)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ public void setPrizeWinners(final PrizeCategory category) {
race.getOverallResults().stream().
filter(_ -> position.get() <= category.numberOfPrizes()).
filter(result -> prizeWinner(result, category)).
forEach(result -> {
forEachOrdered(result -> {
setPrizeWinner(result, category);
position.getAndIncrement();
});
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -163,7 +163,7 @@ protected void printPrizes(final Function<PrizeCategory, Void> prize_printer) {
race.prize_category_groups.stream().
flatMap(group -> group.categories().stream()).
filter(race.prizes::prizesInThisOrLaterCategory).
forEach(prize_printer::apply);
forEachOrdered(prize_printer::apply);
}

private void printPrizes(final OutputStreamWriter writer, final PrizeCategory category) throws IOException {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,6 @@
import java.nio.file.Paths;
import java.util.Comparator;
import java.util.List;
import java.util.concurrent.atomic.AtomicInteger;

public class IndividualRace extends SingleRace {

Expand Down Expand Up @@ -112,7 +111,7 @@ protected void initialiseResults() {
entries.stream().
map(entry -> (IndividualRaceEntry)entry).
map(entry -> new IndividualRaceResult(this, entry)).
forEach(overall_results::add);
forEachOrdered(overall_results::add);
}

@Override
Expand Down Expand Up @@ -198,13 +197,10 @@ private IndividualRaceEntry getEntryWithBibNumber(final int bib_number) {

private int getRecordedPosition(final int bib_number) {

final AtomicInteger position = new AtomicInteger(0);
final int position = (int) raw_results.stream().
takeWhile(result -> result.getBibNumber() != bib_number).
count();

return raw_results.stream().
peek(_ -> position.incrementAndGet()).
filter(result -> result.getBibNumber() == bib_number).
map(_ -> position.get()).
findFirst().
orElse(UNKNOWN_RACE_POSITION);
return position <= raw_results.size() ? position : UNKNOWN_RACE_POSITION;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -300,16 +300,14 @@ protected Duration sumDurationsUpToLeg(final List<LegResult> leg_results, final

private int getRecordedLegPosition(final int bib_number, final int leg_number) {

final AtomicInteger position = new AtomicInteger(0);
final AtomicInteger legs_completed = new AtomicInteger(0);

return raw_results.stream().
peek(_ -> position.incrementAndGet()).
filter(result -> result.getBibNumber() == bib_number).
filter(_ -> legs_completed.incrementAndGet() == leg_number).
map(_ -> position.get()).
findFirst().
orElse(UNKNOWN_RACE_POSITION);
final int position = (int) raw_results.stream().
peek(result -> { if (result.getBibNumber() == bib_number) legs_completed.incrementAndGet(); }).
takeWhile(result -> result.getBibNumber() != bib_number || legs_completed.get() < leg_number).
count() + 1;

return position <= raw_results.size() ? position : UNKNOWN_RACE_POSITION;
}

private int getRecordedLastLegPosition(final RelayRaceResult result) {
Expand Down Expand Up @@ -397,7 +395,7 @@ private void configureGenderEligibilityMap() throws IOException {

Files.readAllLines(getPath(gender_eligibility_map_path)).stream().
filter(line -> !line.startsWith(COMMENT_SYMBOL)).
forEach(line -> {
forEachOrdered(line -> {
final String[] elements = line.split(",");
gender_eligibility_map.put(elements[0],elements[1]);
});
Expand Down Expand Up @@ -449,7 +447,7 @@ private void recordLegResults() {

raw_results.stream().
filter(result -> result.getBibNumber() != UNKNOWN_BIB_NUMBER).
forEach(result -> recordLegResult((RelayRaceRawResult) result));
forEachOrdered(result -> recordLegResult((RelayRaceRawResult) result));
}

private void recordLegResult(final RelayRaceRawResult raw_result) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ protected void initialiseResults() {
map(result -> result.entry.runner).
distinct().
map(this::getOverallResult).
forEach(overall_results::add);
forEachOrdered(overall_results::add);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@
*/
package org.grahamkirby.race_timing.series_race.fife_ac_grand_prix;

import org.grahamkirby.race_timing.common.CompletionStatus;
import org.grahamkirby.race_timing.common.RaceInput;
import org.grahamkirby.race_timing.common.RaceResult;
import org.grahamkirby.race_timing.common.Runner;
Expand All @@ -27,16 +26,13 @@
import org.grahamkirby.race_timing.common.output.RaceOutputPDF;
import org.grahamkirby.race_timing.common.output.RaceOutputText;
import org.grahamkirby.race_timing.individual_race.IndividualRace;
import org.grahamkirby.race_timing.individual_race.IndividualRaceResult;
import org.grahamkirby.race_timing.series_race.SeriesRace;

import java.io.IOException;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.Comparator;
import java.util.List;
import java.util.Objects;
import java.util.concurrent.atomic.AtomicInteger;

public class GrandPrixRace extends SeriesRace {

Expand Down Expand Up @@ -175,57 +171,20 @@ private boolean clubIsDefined(final String club) {

private List<String> getRunnerClubs(final String runner_name) {

return races.stream().
filter(Objects::nonNull).
flatMap(race -> race.getOverallResults().stream()).
map(result -> (IndividualRaceResult)result).
map(result -> result.entry.runner).
filter(runner -> runner.name.equals(runner_name)).
map(runner -> runner.club).
distinct().
sorted().
toList();
return null;
}

private List<String> getRunnerNames() {

return races.stream().
filter(Objects::nonNull).
flatMap(race -> race.getOverallResults().stream()).
map(result -> (IndividualRaceResult)result).
map(result -> result.entry.runner.name).
distinct().
toList();
return null;
}

private void recordDefinedClubForRunnerName(final String runner_name, final String defined_club) {

races.stream().
filter(Objects::nonNull).
flatMap(race -> race.getOverallResults().stream()).
map(result -> (IndividualRaceResult)result).
map(result -> result.entry.runner).
filter(runner -> runner.name.equals(runner_name)).
forEach(runner -> runner.club = defined_club);
}

public int calculateRaceScore(final IndividualRace individual_race, final Runner runner) {

if (individual_race == null) return 0;

final String gender = runner.category.getGender();
final AtomicInteger score = new AtomicInteger(max_race_score + 1);

// The first finisher of each gender gets the maximum score, the next finisher one less, and so on.

return individual_race.getOverallResults().stream().
map(result -> (IndividualRaceResult) result).
filter(result -> result.getCompletionStatus() == CompletionStatus.COMPLETED).
map(result -> result.entry.runner).
peek(result_runner -> { if (gender.equals(result_runner.category.getGender())) score.decrementAndGet(); }).
filter(result_runner -> result_runner.equals(runner)).
findFirst().
map(_ -> Math.max(score.get(), 0)).
orElse(0); // Runner didn't compete in this race.
return 0;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -218,6 +218,6 @@ private void recordDefinedClubForRunnerName(final String runner_name, final Stri
map(result -> (IndividualRaceResult)result).
map(result -> result.entry.runner).
filter(runner -> runner.name.equals(runner_name)).
forEach(runner -> runner.club = defined_club);
forEachOrdered(runner -> runner.club = defined_club);
}
}

0 comments on commit 949863d

Please sign in to comment.