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

common-workflow-language / cwljava / #366

15 Jul 2025 10:49AM UTC coverage: 59.538% (-0.6%) from 60.167%
#366

push

github

mr-c
Add accessor for the extension field.

0 of 129 new or added lines in 129 files covered. (0.0%)

7347 of 12340 relevant lines covered (59.54%)

0.6 hits per line

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

41.38
/src/main/java/org/w3id/cwl/cwl1_1/FileImpl.java
1
// Copyright Common Workflow Language project contributors
2
//
3
// Licensed under the Apache License, Version 2.0 (the "License");
4
// you may not use this file except in compliance with the License.
5
// You may obtain a copy of the License at
6
//
7
//      http://www.apache.org/licenses/LICENSE-2.0
8
//
9
// Unless required by applicable law or agreed to in writing, software
10
// distributed under the License is distributed on an "AS IS" BASIS,
11
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
// See the License for the specific language governing permissions and
13
// limitations under the License.
14

15
package org.w3id.cwl.cwl1_1;
16

17
import org.w3id.cwl.cwl1_1.utils.LoaderInstances;
18
import org.w3id.cwl.cwl1_1.utils.LoadingOptions;
19
import org.w3id.cwl.cwl1_1.utils.LoadingOptionsBuilder;
20
import org.w3id.cwl.cwl1_1.utils.SaveableImpl;
21
import org.w3id.cwl.cwl1_1.utils.ValidationException;
22

23
/**
24
* Auto-generated class implementation for <I>https://w3id.org/cwl/cwl#File</I><BR> <BLOCKQUOTE>
25
 Represents a file (or group of files when `secondaryFiles` is provided) that
26
 will be accessible by tools using standard POSIX file system call API such as
27
 open(2) and read(2).
28
 
29
 Files are represented as objects with `class` of `File`.  File objects have
30
 a number of properties that provide metadata about the file.
31
 
32
 The `location` property of a File is a URI that uniquely identifies the
33
 file.  Implementations must support the file:// URI scheme and may support
34
 other schemes such as http://.  The value of `location` may also be a
35
 relative reference, in which case it must be resolved relative to the URI
36
 of the document it appears in.  Alternately to `location`, implementations
37
 must also accept the `path` property on File, which must be a filesystem
38
 path available on the same host as the CWL runner (for inputs) or the
39
 runtime environment of a command line tool execution (for command line tool
40
 outputs).
41
 
42
 If no `location` or `path` is specified, a file object must specify
43
 `contents` with the UTF-8 text content of the file.  This is a "file
44
 literal".  File literals do not correspond to external resources, but are
45
 created on disk with `contents` with when needed for a executing a tool.
46
 Where appropriate, expressions can return file literals to define new files
47
 on a runtime.  The maximum size of `contents` is 64 kilobytes.
48
 
49
 The `basename` property defines the filename on disk where the file is
50
 staged.  This may differ from the resource name.  If not provided,
51
 `basename` must be computed from the last path part of `location` and made
52
 available to expressions.
53
 
54
 The `secondaryFiles` property is a list of File or Directory objects that
55
 must be staged in the same directory as the primary file.  It is an error
56
 for file names to be duplicated in `secondaryFiles`.
57
 
58
 The `size` property is the size in bytes of the File.  It must be computed
59
 from the resource and made available to expressions.  The `checksum` field
60
 contains a cryptographic hash of the file content for use it verifying file
61
 contents.  Implementations may, at user option, enable or disable
62
 computation of the `checksum` field for performance or other reasons.
63
 However, the ability to compute output checksums is required to pass the
64
 CWL conformance test suite.
65
 
66
 When executing a CommandLineTool, the files and secondary files may be
67
 staged to an arbitrary directory, but must use the value of `basename` for
68
 the filename.  The `path` property must be file path in the context of the
69
 tool execution runtime (local to the compute node, or within the executing
70
 container).  All computed properties should be available to expressions.
71
 File literals also must be staged and `path` must be set.
72
 
73
 When collecting CommandLineTool outputs, `glob` matching returns file paths
74
 (with the `path` property) and the derived properties. This can all be
75
 modified by `outputEval`.  Alternately, if the file `cwl.output.json` is
76
 present in the output, `outputBinding` is ignored.
77
 
78
 File objects in the output must provide either a `location` URI or a `path`
79
 property in the context of the tool execution runtime (local to the compute
80
 node, or within the executing container).
81
 
82
 When evaluating an ExpressionTool, file objects must be referenced via
83
 `location` (the expression tool does not have access to files on disk so
84
 `path` is meaningless) or as file literals.  It is legal to return a file
85
 object with an existing `location` but a different `basename`.  The
86
 `loadContents` field of ExpressionTool inputs behaves the same as on
87
 CommandLineTool inputs, however it is not meaningful on the outputs.
88
 
89
 An ExpressionTool may forward file references from input to output by using
90
 the same value for `location`.
91
  </BLOCKQUOTE>
92
 */
93
public class FileImpl extends SaveableImpl implements File {
94
  private LoadingOptions loadingOptions_ = new LoadingOptionsBuilder().build();
1✔
95
  private java.util.Map<String, Object> extensionFields_ =
1✔
96
      new java.util.HashMap<String, Object>();
97
  public java.util.Map<String, Object> getExtensionFields() {
NEW
98
    return this.extensionFields_;
×
99
  }
100

101
  private File_class class_;
102

103
  /**
104
   * Getter for property <I>https://w3id.org/cwl/cwl#File/class</I><BR>
105
   * <BLOCKQUOTE>
106
   * Must be `File` to indicate this object describes a file.   * </BLOCKQUOTE>
107
   */
108

109
  public File_class getClass_() {
110
    return this.class_;
×
111
  }
112

113
  private java.util.Optional<String> location;
114

115
  /**
116
   * Getter for property <I>https://w3id.org/cwl/cwl#File/location</I><BR>
117
   * <BLOCKQUOTE>
118
   * An IRI that identifies the file resource.  This may be a relative
119
   * reference, in which case it must be resolved using the base IRI of the
120
   * document.  The location may refer to a local or remote resource; the
121
   * implementation must use the IRI to retrieve file content.  If an
122
   * implementation is unable to retrieve the file content stored at a
123
   * remote resource (due to unsupported protocol, access denied, or other
124
   * issue) it must signal an error.
125
   * 
126
   * If the `location` field is not provided, the `contents` field must be
127
   * provided.  The implementation must assign a unique identifier for
128
   * the `location` field.
129
   * 
130
   * If the `path` field is provided but the `location` field is not, an
131
   * implementation may assign the value of the `path` field to `location`,
132
   * then follow the rules above.
133
   *    * </BLOCKQUOTE>
134
   */
135

136
  public java.util.Optional<String> getLocation() {
137
    return this.location;
×
138
  }
139

140
  private java.util.Optional<String> path;
141

142
  /**
143
   * Getter for property <I>https://w3id.org/cwl/cwl#path</I><BR>
144
   * <BLOCKQUOTE>
145
   * The local host path where the File is available when a CommandLineTool is
146
   * executed.  This field must be set by the implementation.  The final
147
   * path component must match the value of `basename`.  This field
148
   * must not be used in any other context.  The command line tool being
149
   * executed must be able to to access the file at `path` using the POSIX
150
   * `open(2)` syscall.
151
   * 
152
   * As a special case, if the `path` field is provided but the `location`
153
   * field is not, an implementation may assign the value of the `path`
154
   * field to `location`, and remove the `path` field.
155
   * 
156
   * If the `path` contains [POSIX shell metacharacters](http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_02)
157
   * (`|`,`&`, `;`, `<`, `>`, `(`,`)`, `$`,`` ` ``, `\`, `"`, `'`,
158
   * `<space>`, `<tab>`, and `<newline>`) or characters
159
   * [not allowed](http://www.iana.org/assignments/idna-tables-6.3.0/idna-tables-6.3.0.xhtml)
160
   * for [Internationalized Domain Names for Applications](https://tools.ietf.org/html/rfc6452)
161
   * then implementations may terminate the process with a
162
   * `permanentFailure`.
163
   *    * </BLOCKQUOTE>
164
   */
165

166
  public java.util.Optional<String> getPath() {
167
    return this.path;
×
168
  }
169

170
  private java.util.Optional<String> basename;
171

172
  /**
173
   * Getter for property <I>https://w3id.org/cwl/cwl#File/basename</I><BR>
174
   * <BLOCKQUOTE>
175
   * The base name of the file, that is, the name of the file without any
176
   * leading directory path.  The base name must not contain a slash `/`.
177
   * 
178
   * If not provided, the implementation must set this field based on the
179
   * `location` field by taking the final path component after parsing
180
   * `location` as an IRI.  If `basename` is provided, it is not required to
181
   * match the value from `location`.
182
   * 
183
   * When this file is made available to a CommandLineTool, it must be named
184
   * with `basename`, i.e. the final component of the `path` field must match
185
   * `basename`.
186
   *    * </BLOCKQUOTE>
187
   */
188

189
  public java.util.Optional<String> getBasename() {
190
    return this.basename;
×
191
  }
192

193
  private java.util.Optional<String> dirname;
194

195
  /**
196
   * Getter for property <I>https://w3id.org/cwl/cwl#File/dirname</I><BR>
197
   * <BLOCKQUOTE>
198
   * The name of the directory containing file, that is, the path leading up
199
   * to the final slash in the path such that `dirname + '/' + basename ==
200
   * path`.
201
   * 
202
   * The implementation must set this field based on the value of `path`
203
   * prior to evaluating parameter references or expressions in a
204
   * CommandLineTool document.  This field must not be used in any other
205
   * context.
206
   *    * </BLOCKQUOTE>
207
   */
208

209
  public java.util.Optional<String> getDirname() {
210
    return this.dirname;
×
211
  }
212

213
  private java.util.Optional<String> nameroot;
214

215
  /**
216
   * Getter for property <I>https://w3id.org/cwl/cwl#File/nameroot</I><BR>
217
   * <BLOCKQUOTE>
218
   * The basename root such that `nameroot + nameext == basename`, and
219
   * `nameext` is empty or begins with a period and contains at most one
220
   * period.  For the purposess of path splitting leading periods on the
221
   * basename are ignored; a basename of `.cshrc` will have a nameroot of
222
   * `.cshrc`.
223
   * 
224
   * The implementation must set this field automatically based on the value
225
   * of `basename` prior to evaluating parameter references or expressions.
226
   *    * </BLOCKQUOTE>
227
   */
228

229
  public java.util.Optional<String> getNameroot() {
230
    return this.nameroot;
×
231
  }
232

233
  private java.util.Optional<String> nameext;
234

235
  /**
236
   * Getter for property <I>https://w3id.org/cwl/cwl#File/nameext</I><BR>
237
   * <BLOCKQUOTE>
238
   * The basename extension such that `nameroot + nameext == basename`, and
239
   * `nameext` is empty or begins with a period and contains at most one
240
   * period.  Leading periods on the basename are ignored; a basename of
241
   * `.cshrc` will have an empty `nameext`.
242
   * 
243
   * The implementation must set this field automatically based on the value
244
   * of `basename` prior to evaluating parameter references or expressions.
245
   *    * </BLOCKQUOTE>
246
   */
247

248
  public java.util.Optional<String> getNameext() {
249
    return this.nameext;
×
250
  }
251

252
  private java.util.Optional<String> checksum;
253

254
  /**
255
   * Getter for property <I>https://w3id.org/cwl/cwl#File/checksum</I><BR>
256
   * <BLOCKQUOTE>
257
   * Optional hash code for validating file integrity.  Currently must be in the form
258
   * "sha1$ + hexadecimal string" using the SHA-1 algorithm.
259
   *    * </BLOCKQUOTE>
260
   */
261

262
  public java.util.Optional<String> getChecksum() {
263
    return this.checksum;
×
264
  }
265

266
  private Object size;
267

268
  /**
269
   * Getter for property <I>https://w3id.org/cwl/cwl#File/size</I><BR>
270
   * <BLOCKQUOTE>
271
   * Optional file size   * </BLOCKQUOTE>
272
   */
273

274
  public Object getSize() {
275
    return this.size;
×
276
  }
277

278
  private java.util.Optional<java.util.List<Object>> secondaryFiles;
279

280
  /**
281
   * Getter for property <I>https://w3id.org/cwl/cwl#secondaryFiles</I><BR>
282
   * <BLOCKQUOTE>
283
   * A list of additional files or directories that are associated with the
284
   * primary file and must be transferred alongside the primary file.
285
   * Examples include indexes of the primary file, or external references
286
   * which must be included when loading primary document.  A file object
287
   * listed in `secondaryFiles` may itself include `secondaryFiles` for
288
   * which the same rules apply.
289
   *    * </BLOCKQUOTE>
290
   */
291

292
  public java.util.Optional<java.util.List<Object>> getSecondaryFiles() {
293
    return this.secondaryFiles;
×
294
  }
295

296
  private java.util.Optional<String> format;
297

298
  /**
299
   * Getter for property <I>https://w3id.org/cwl/cwl#format</I><BR>
300
   * <BLOCKQUOTE>
301
   * The format of the file: this must be an IRI of a concept node that
302
   * represents the file format, preferrably defined within an ontology.
303
   * If no ontology is available, file formats may be tested by exact match.
304
   * 
305
   * Reasoning about format compatability must be done by checking that an
306
   * input file format is the same, `owl:equivalentClass` or
307
   * `rdfs:subClassOf` the format required by the input parameter.
308
   * `owl:equivalentClass` is transitive with `rdfs:subClassOf`, e.g. if
309
   * `<B> owl:equivalentClass <C>` and `<B> owl:subclassOf <A>` then infer
310
   * `<C> owl:subclassOf <A>`.
311
   * 
312
   * File format ontologies may be provided in the "$schemas" metadata at the
313
   * root of the document.  If no ontologies are specified in `$schemas`, the
314
   * runtime may perform exact file format matches.
315
   *    * </BLOCKQUOTE>
316
   */
317

318
  public java.util.Optional<String> getFormat() {
319
    return this.format;
×
320
  }
321

322
  private java.util.Optional<String> contents;
323

324
  /**
325
   * Getter for property <I>https://w3id.org/cwl/cwl#File/contents</I><BR>
326
   * <BLOCKQUOTE>
327
   * File contents literal.  Maximum of 64 KiB.
328
   * 
329
   * If neither `location` nor `path` is provided, `contents` must be
330
   * non-null.  The implementation must assign a unique identifier for the
331
   * `location` field.  When the file is staged as input to CommandLineTool,
332
   * the value of `contents` must be written to a file.
333
   * 
334
   * If `loadContents` of `inputBinding` or `outputBinding` is true and
335
   * `location` is valid, the implementation must read up to the first 64
336
   * KiB of text from the file and place it in the "contents" field.
337
   *    * </BLOCKQUOTE>
338
   */
339

340
  public java.util.Optional<String> getContents() {
341
    return this.contents;
×
342
  }
343

344
  /**
345
   * Used by {@link org.w3id.cwl.cwl1_1.utils.RootLoader} to construct instances of FileImpl.
346
   *
347
   * @param __doc_            Document fragment to load this record object from (presumably a
348
                              {@link java.util.Map}).
349
   * @param __baseUri_        Base URI to generate child document IDs against.
350
   * @param __loadingOptions  Context for loading URIs and populating objects.
351
   * @param __docRoot_        ID at this position in the document (if available) (maybe?)
352
   * @throws ValidationException If the document fragment is not a {@link java.util.Map}
353
   *                             or validation of fields fails.
354
   */
355
  public FileImpl(
356
      final Object __doc_,
357
      final String __baseUri_,
358
      LoadingOptions __loadingOptions,
359
      final String __docRoot_) {
360
    super(__doc_, __baseUri_, __loadingOptions, __docRoot_);
1✔
361
    // Prefix plumbing variables with '__' to reduce likelihood of collision with
362
    // generated names.
363
    String __baseUri = __baseUri_;
1✔
364
    String __docRoot = __docRoot_;
1✔
365
    if (!(__doc_ instanceof java.util.Map)) {
1✔
366
      throw new ValidationException("FileImpl called on non-map");
×
367
    }
368
    final java.util.Map<String, Object> __doc = (java.util.Map<String, Object>) __doc_;
1✔
369
    final java.util.List<ValidationException> __errors =
1✔
370
        new java.util.ArrayList<ValidationException>();
371
    if (__loadingOptions != null) {
1✔
372
      this.loadingOptions_ = __loadingOptions;
1✔
373
    }
374
    File_class class_;
375
    try {
376
      class_ =
1✔
377
          LoaderInstances
378
              .uri_File_class_False_True_None_None
379
              .loadField(__doc.get("class"), __baseUri, __loadingOptions);
1✔
380
    } catch (ValidationException e) {
1✔
381
      class_ = null; // won't be used but prevents compiler from complaining.
1✔
382
      final String __message = "the `class` field is not valid because:";
1✔
383
      __errors.add(new ValidationException(__message, e));
1✔
384
    }
1✔
385
    java.util.Optional<String> location;
386

387
    if (__doc.containsKey("location")) {
1✔
388
      try {
389
        location =
1✔
390
            LoaderInstances
391
                .uri_optional_StringInstance_False_False_None_None
392
                .loadField(__doc.get("location"), __baseUri, __loadingOptions);
1✔
393
      } catch (ValidationException e) {
×
394
        location = null; // won't be used but prevents compiler from complaining.
×
395
        final String __message = "the `location` field is not valid because:";
×
396
        __errors.add(new ValidationException(__message, e));
×
397
      }
1✔
398

399
    } else {
400
      location = null;
1✔
401
    }
402
    java.util.Optional<String> path;
403

404
    if (__doc.containsKey("path")) {
1✔
405
      try {
406
        path =
1✔
407
            LoaderInstances
408
                .uri_optional_StringInstance_False_False_None_None
409
                .loadField(__doc.get("path"), __baseUri, __loadingOptions);
1✔
410
      } catch (ValidationException e) {
×
411
        path = null; // won't be used but prevents compiler from complaining.
×
412
        final String __message = "the `path` field is not valid because:";
×
413
        __errors.add(new ValidationException(__message, e));
×
414
      }
1✔
415

416
    } else {
417
      path = null;
1✔
418
    }
419
    java.util.Optional<String> basename;
420

421
    if (__doc.containsKey("basename")) {
1✔
422
      try {
423
        basename =
×
424
            LoaderInstances
425
                .optional_StringInstance
426
                .loadField(__doc.get("basename"), __baseUri, __loadingOptions);
×
427
      } catch (ValidationException e) {
×
428
        basename = null; // won't be used but prevents compiler from complaining.
×
429
        final String __message = "the `basename` field is not valid because:";
×
430
        __errors.add(new ValidationException(__message, e));
×
431
      }
×
432

433
    } else {
434
      basename = null;
1✔
435
    }
436
    java.util.Optional<String> dirname;
437

438
    if (__doc.containsKey("dirname")) {
1✔
439
      try {
440
        dirname =
×
441
            LoaderInstances
442
                .optional_StringInstance
443
                .loadField(__doc.get("dirname"), __baseUri, __loadingOptions);
×
444
      } catch (ValidationException e) {
×
445
        dirname = null; // won't be used but prevents compiler from complaining.
×
446
        final String __message = "the `dirname` field is not valid because:";
×
447
        __errors.add(new ValidationException(__message, e));
×
448
      }
×
449

450
    } else {
451
      dirname = null;
1✔
452
    }
453
    java.util.Optional<String> nameroot;
454

455
    if (__doc.containsKey("nameroot")) {
1✔
456
      try {
457
        nameroot =
×
458
            LoaderInstances
459
                .optional_StringInstance
460
                .loadField(__doc.get("nameroot"), __baseUri, __loadingOptions);
×
461
      } catch (ValidationException e) {
×
462
        nameroot = null; // won't be used but prevents compiler from complaining.
×
463
        final String __message = "the `nameroot` field is not valid because:";
×
464
        __errors.add(new ValidationException(__message, e));
×
465
      }
×
466

467
    } else {
468
      nameroot = null;
1✔
469
    }
470
    java.util.Optional<String> nameext;
471

472
    if (__doc.containsKey("nameext")) {
1✔
473
      try {
474
        nameext =
×
475
            LoaderInstances
476
                .optional_StringInstance
477
                .loadField(__doc.get("nameext"), __baseUri, __loadingOptions);
×
478
      } catch (ValidationException e) {
×
479
        nameext = null; // won't be used but prevents compiler from complaining.
×
480
        final String __message = "the `nameext` field is not valid because:";
×
481
        __errors.add(new ValidationException(__message, e));
×
482
      }
×
483

484
    } else {
485
      nameext = null;
1✔
486
    }
487
    java.util.Optional<String> checksum;
488

489
    if (__doc.containsKey("checksum")) {
1✔
490
      try {
491
        checksum =
×
492
            LoaderInstances
493
                .optional_StringInstance
494
                .loadField(__doc.get("checksum"), __baseUri, __loadingOptions);
×
495
      } catch (ValidationException e) {
×
496
        checksum = null; // won't be used but prevents compiler from complaining.
×
497
        final String __message = "the `checksum` field is not valid because:";
×
498
        __errors.add(new ValidationException(__message, e));
×
499
      }
×
500

501
    } else {
502
      checksum = null;
1✔
503
    }
504
    Object size;
505

506
    if (__doc.containsKey("size")) {
1✔
507
      try {
508
        size =
×
509
            LoaderInstances
510
                .union_of_NullInstance_or_IntegerInstance_or_LongInstance
511
                .loadField(__doc.get("size"), __baseUri, __loadingOptions);
×
512
      } catch (ValidationException e) {
×
513
        size = null; // won't be used but prevents compiler from complaining.
×
514
        final String __message = "the `size` field is not valid because:";
×
515
        __errors.add(new ValidationException(__message, e));
×
516
      }
×
517

518
    } else {
519
      size = null;
1✔
520
    }
521
    java.util.Optional<java.util.List<Object>> secondaryFiles;
522

523
    if (__doc.containsKey("secondaryFiles")) {
1✔
524
      try {
525
        secondaryFiles =
×
526
            LoaderInstances
527
                .secondaryfilesdsl_optional_array_of_union_of_File_or_Directory
528
                .loadField(__doc.get("secondaryFiles"), __baseUri, __loadingOptions);
×
529
      } catch (ValidationException e) {
×
530
        secondaryFiles = null; // won't be used but prevents compiler from complaining.
×
531
        final String __message = "the `secondaryFiles` field is not valid because:";
×
532
        __errors.add(new ValidationException(__message, e));
×
533
      }
×
534

535
    } else {
536
      secondaryFiles = null;
1✔
537
    }
538
    java.util.Optional<String> format;
539

540
    if (__doc.containsKey("format")) {
1✔
541
      try {
542
        format =
×
543
            LoaderInstances
544
                .uri_optional_StringInstance_True_False_None_True
545
                .loadField(__doc.get("format"), __baseUri, __loadingOptions);
×
546
      } catch (ValidationException e) {
×
547
        format = null; // won't be used but prevents compiler from complaining.
×
548
        final String __message = "the `format` field is not valid because:";
×
549
        __errors.add(new ValidationException(__message, e));
×
550
      }
×
551

552
    } else {
553
      format = null;
1✔
554
    }
555
    java.util.Optional<String> contents;
556

557
    if (__doc.containsKey("contents")) {
1✔
558
      try {
559
        contents =
×
560
            LoaderInstances
561
                .optional_StringInstance
562
                .loadField(__doc.get("contents"), __baseUri, __loadingOptions);
×
563
      } catch (ValidationException e) {
×
564
        contents = null; // won't be used but prevents compiler from complaining.
×
565
        final String __message = "the `contents` field is not valid because:";
×
566
        __errors.add(new ValidationException(__message, e));
×
567
      }
×
568

569
    } else {
570
      contents = null;
1✔
571
    }
572
    if (!__errors.isEmpty()) {
1✔
573
      throw new ValidationException("Trying 'RecordField'", __errors);
1✔
574
    }
575
    this.class_ = (File_class) class_;
1✔
576
    this.location = (java.util.Optional<String>) location;
1✔
577
    this.path = (java.util.Optional<String>) path;
1✔
578
    this.basename = (java.util.Optional<String>) basename;
1✔
579
    this.dirname = (java.util.Optional<String>) dirname;
1✔
580
    this.nameroot = (java.util.Optional<String>) nameroot;
1✔
581
    this.nameext = (java.util.Optional<String>) nameext;
1✔
582
    this.checksum = (java.util.Optional<String>) checksum;
1✔
583
    this.size = (Object) size;
1✔
584
    this.secondaryFiles = (java.util.Optional<java.util.List<Object>>) secondaryFiles;
1✔
585
    this.format = (java.util.Optional<String>) format;
1✔
586
    this.contents = (java.util.Optional<String>) contents;
1✔
587
  }
1✔
588
}
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

© 2026 Coveralls, Inc