File: LoadingOptionsBuilder.java

package info (click to toggle)
python-schema-salad 8.9.20251102115403-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 6,060 kB
  • sloc: python: 19,247; cpp: 2,631; cs: 1,869; java: 1,341; makefile: 187; xml: 184; sh: 103; javascript: 46
file content (82 lines) | stat: -rw-r--r-- 2,641 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
package ${package}.utils;

import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Optional;

public class LoadingOptionsBuilder {
  private Optional<Fetcher> fetcher = Optional.empty();
  private Optional<String> fileUri = Optional.empty();
  private Optional<Map<String, String>> namespaces = Optional.empty();
  private Optional<List<String>> schemas = Optional.empty();
  private Optional<LoadingOptions> copyFrom = Optional.empty();
  private Optional<Boolean> noLinkCheck = Optional.empty();
  private Optional<String> container = Optional.empty();

  public LoadingOptionsBuilder() {}

  public LoadingOptionsBuilder setFetcher(final Fetcher fetcher) {
    this.fetcher = Optional.of(fetcher);
    return this;
  }

  public LoadingOptionsBuilder copiedFrom(final LoadingOptions copyFrom) {
    this.copyFrom = Optional.of(copyFrom);
    return this;
  }

  public LoadingOptionsBuilder setFileUri(final String fileUri) {
    this.fileUri = Optional.of(fileUri);
    return this;
  }

  public LoadingOptionsBuilder setNamespaces(final Map<String, String> namespaces) {
    this.namespaces = Optional.of(namespaces);
    return this;
  }

  public LoadingOptionsBuilder setNoLinkCheck(final Boolean noLinkCheck) {
    this.noLinkCheck = Optional.of(noLinkCheck);
    return this;
  }

  public LoadingOptionsBuilder setContainer(final String container) {
    this.container = Optional.of(container);
    return this;
  }

  public LoadingOptions build() {
    Fetcher fetcher = this.fetcher.orElse(null);
    String fileUri = this.fileUri.orElse(null);
    List<String> schemas = this.schemas.orElse(null);
    Map<String, String> namespaces = this.namespaces.orElse(null);
    Boolean noLinkCheck = this.noLinkCheck.orElse(null);
    String container = this.container.orElse(null);
    Map<String, Object> idx = new HashMap<String, Object>();
    if (this.copyFrom.isPresent()) {
      final LoadingOptions copyFrom = this.copyFrom.get();
      idx = copyFrom.idx;
      if (fetcher == null) {
        fetcher = copyFrom.fetcher;
      }
      if (fileUri == null) {
        fileUri = copyFrom.fileUri;
      }
      if (namespaces == null) {
        namespaces = copyFrom.namespaces;
        schemas = copyFrom.schemas; // Bug in Python codegen?
      }
      if (noLinkCheck == null) {
        noLinkCheck = copyFrom.noLinkCheck;
      }
      if (container == null) {
        container = copyFrom.container;
      }
    }
    if (fetcher == null) {
      fetcher = new DefaultFetcher();
    }
    return new LoadingOptions(fetcher, fileUri, namespaces, schemas, noLinkCheck, container, idx);
  }
}