• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

Ekryd / sortgraphql / 2150

08 Apr 2024 05:09PM CUT coverage: 98.082%. Remained the same
2150

push

circleci

web-flow
Update dependency commons-io:commons-io to v2.16.1

818 of 834 relevant lines covered (98.08%)

0.98 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

100.0
/sorter/src/main/java/sortgraphql/SorterImpl.java
1
package sortgraphql;
2

3
import graphql.schema.GraphQLSchema;
4
import java.io.File;
5
import java.util.List;
6
import java.util.Map;
7
import sortgraphql.logger.SortingLogger;
8
import sortgraphql.parameter.PluginParameters;
9

10
/** The implementation of the Mojo (Maven plugin) that sorts the schema file. */
11
public class SorterImpl {
1✔
12
  private final SorterService sorterService = new SorterService();
1✔
13

14
  private SortingLogger log;
15
  private List<File> schemaFiles;
16
  private Map<File, String> schemaContents;
17
  private boolean individualSchemas;
18

19
  public void setup(SortingLogger log, PluginParameters pluginParameters) {
20
    this.log = log;
1✔
21
    this.schemaFiles = pluginParameters.schemaFiles;
1✔
22
    this.individualSchemas = pluginParameters.individualSchemas;
1✔
23

24
    sorterService.setup(log, pluginParameters);
1✔
25
  }
1✔
26

27
  public void sortSchemas() {
28
    schemaContents = sorterService.getSchemaContents(schemaFiles);
1✔
29
    if (individualSchemas) {
1✔
30
      schemaContents.forEach(
1✔
31
          (file, content) -> {
32
            var mergedSchema = sorterService.createMergedSchema(List.of(content), List.of(file));
1✔
33
            sortSchema(file, mergedSchema);
1✔
34
          });
1✔
35
    } else {
36
      var mergedSchema = sorterService.createMergedSchema(schemaContents.values(), schemaFiles);
1✔
37
      schemaFiles.forEach(schemaFile -> sortSchema(schemaFile, mergedSchema));
1✔
38
    }
39
  }
1✔
40

41
  private void sortSchema(File schemaFile, GraphQLSchema mergedSchema) {
42
    log.info("Sorting file " + schemaFile.getAbsolutePath());
1✔
43

44
    var sortedContent = sorterService.sortSchema(mergedSchema, schemaFile.getName());
1✔
45

46
    if (sorterService.isSchemaSorted(schemaContents.get(schemaFile), sortedContent)) {
1✔
47
      log.info("Schema file is already sorted, exiting");
1✔
48
      return;
1✔
49
    }
50

51
    sorterService.createBackupFile(schemaFile);
1✔
52
    sorterService.saveSortedContent(sortedContent, schemaFile);
1✔
53
    log.info("Saved sorted schema file to " + schemaFile.getAbsolutePath());
1✔
54
  }
1✔
55
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc