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

pkiraly / metadata-qa-marc / #1430

12 Mar 2025 12:23PM UTC coverage: 90.395% (-0.06%) from 90.457%
#1430

push

pkiraly
Merge branch 'main' of github.com:pkiraly/qa-catalogue

36517 of 40397 relevant lines covered (90.4%)

0.9 hits per line

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

86.65
/src/main/java/de/gwdg/metadataqa/marc/cli/parameters/CommonParameters.java
1
package de.gwdg.metadataqa.marc.cli.parameters;
2

3
import com.fasterxml.jackson.annotation.JsonIgnore;
4
import de.gwdg.metadataqa.marc.cli.utils.IgnorableFields;
5
import de.gwdg.metadataqa.marc.cli.utils.ignorablerecords.RecordFilter;
6
import de.gwdg.metadataqa.marc.cli.utils.ignorablerecords.RecordFilterFactory;
7
import de.gwdg.metadataqa.marc.cli.utils.ignorablerecords.RecordIgnorator;
8
import de.gwdg.metadataqa.marc.cli.utils.ignorablerecords.RecordIgnoratorFactory;
9
import de.gwdg.metadataqa.marc.dao.MarcLeader;
10
import de.gwdg.metadataqa.marc.definition.DataSource;
11
import de.gwdg.metadataqa.marc.definition.MarcFormat;
12
import de.gwdg.metadataqa.marc.definition.MarcVersion;
13
import de.gwdg.metadataqa.marc.definition.bibliographic.SchemaType;
14
import de.gwdg.metadataqa.marc.utils.alephseq.AlephseqLine;
15
import org.apache.commons.cli.CommandLine;
16
import org.apache.commons.cli.CommandLineParser;
17
import org.apache.commons.cli.DefaultParser;
18
import org.apache.commons.cli.Options;
19
import org.apache.commons.cli.ParseException;
20
import org.apache.commons.lang3.StringUtils;
21

22
import java.io.InputStream;
23
import java.io.Serializable;
24

25
public class CommonParameters implements Serializable {
26

27
  private static final long serialVersionUID = -4760615880678251867L;
28

29
  protected String[] args;
30
  public static final String DEFAULT_OUTPUT_DIR = ".";
31
  public static final MarcVersion DEFAULT_MARC_VERSION = MarcVersion.MARC21;
1✔
32

33
  protected MarcVersion marcVersion = DEFAULT_MARC_VERSION;
1✔
34
  protected MarcFormat marcFormat = MarcFormat.ISO;
1✔
35
  protected DataSource dataSource = DataSource.FILE;
1✔
36
  protected boolean doHelp;
37
  protected boolean doLog = true;
1✔
38
  protected int limit = -1;
1✔
39
  protected int offset = -1;
1✔
40
  protected String id = null;
1✔
41
  protected MarcLeader.Type defaultRecordType = MarcLeader.Type.BOOKS;
1✔
42
  protected boolean fixAlephseq = false;
1✔
43
  protected boolean fixAlma = false;
1✔
44
  protected boolean fixKbr = false;
1✔
45
  protected boolean alephseq = false;
1✔
46
  protected boolean marcxml = false;
1✔
47
  protected boolean lineSeparated = false;
1✔
48
  protected boolean trimId = false;
1✔
49
  private String outputDir = DEFAULT_OUTPUT_DIR;
1✔
50
  protected String ignorableRecords;
51
  @JsonIgnore
52
  protected RecordIgnorator recordIgnorator;
53
  protected RecordFilter recordFilter;
54
  protected IgnorableFields ignorableFields = new IgnorableFields();
1✔
55
  protected InputStream stream = null;
1✔
56
  protected String defaultEncoding = null;
1✔
57

58
  @JsonIgnore
1✔
59
  protected Options options = new Options();
60
  protected static final CommandLineParser parser = new DefaultParser();
1✔
61
  protected CommandLine cmd;
62
  private boolean isOptionSet = false;
1✔
63
  private AlephseqLine.TYPE alephseqLineType;
64
  private String picaIdField = "003@$0";
1✔
65
  private String picaSubfieldSeparator = "$";
1✔
66
  private String picaSchemaFile;
67
  private String picaRecordTypeField = "002@$0";
1✔
68
  private SchemaType schemaType = SchemaType.MARC21;
1✔
69
  private String groupBy;
70
  private String groupListFile;
71
  private String solrForScoresUrl;
72

73
  protected void setOptions() {
74
    if (!isOptionSet) {
1✔
75
      options.addOption("m", "marcVersion", true, "MARC version ('OCLC' or 'DNB')");
1✔
76
      options.addOption("h", "help", false, "display help");
1✔
77
      options.addOption("n", "nolog", false, "do not display log messages");
1✔
78
      options.addOption("l", "limit", true, "limit the number of records to process");
1✔
79
      options.addOption("o", "offset", true, "the first record to process");
1✔
80
      options.addOption("i", "id", true, "the MARC identifier (content of 001)");
1✔
81
      options.addOption("d", "defaultRecordType", true, "the default record type if the record's type is undetectable");
1✔
82
      options.addOption("q", "fixAlephseq", false, "fix the known issues of Alephseq format");
1✔
83
      options.addOption("a", "fixAlma", false, "fix the known issues of Alma format");
1✔
84
      options.addOption("b", "fixKbr", false, "fix the known issues of Alma format");
1✔
85
      options.addOption("p", "alephseq", false, "the source is in Alephseq format");
1✔
86
      options.addOption("x", "marcxml", false, "the source is in MARCXML format");
1✔
87
      options.addOption("y", "lineSeparated", false, "the source is in line separated MARC format");
1✔
88
      options.addOption("t", "outputDir", true, "output directory");
1✔
89
      options.addOption("r", "trimId", false, "remove spaces from the end of record IDs");
1✔
90
      options.addOption("z", "ignorableFields", true, "ignore fields from the analysis");
1✔
91
      options.addOption("v", "ignorableRecords", true, "ignore records from the analysis");
1✔
92
      options.addOption("f", "marcFormat", true, "MARC format (like 'ISO' or 'MARCXML')");
1✔
93
      options.addOption("s", "dataSource", true, "data source (file of stream)");
1✔
94
      options.addOption("g", "defaultEncoding", true, "default character encoding");
1✔
95
      options.addOption("1", "alephseqLineType", true, "Alephseq line type");
1✔
96
      options.addOption("2", "picaIdField", true, "PICA id field");
1✔
97
      options.addOption("u", "picaSubfieldSeparator", true, "PICA subfield separator");
1✔
98
      options.addOption("j", "picaSchemaFile", true, "Avram PICA schema file");
1✔
99
      // For now, I'll be using picaSchemaFile for both PICA and UNIMARC. The option could be renamed later or a separate option could be added
100
      options.addOption("w", "schemaType", true, "metadata schema type ('MARC21', 'UNIMARC', or 'PICA')");
1✔
101
      options.addOption("k", "picaRecordType", true, "picaRecordType");
1✔
102
      options.addOption("c", "allowableRecords", true, "allow records for the analysis");
1✔
103
      options.addOption("e", "groupBy", true, "group the results by the value of this data element (e.g. the ILN of  library)");
1✔
104
      options.addOption("3", "groupListFile", true, "the file which contains a list of ILN codes");
1✔
105
      options.addOption("4", "solrForScoresUrl", true, "the URL of the Solr server used to store scores");
1✔
106

107
      isOptionSet = true;
1✔
108
    }
109
  }
1✔
110

111
  public CommonParameters() {
1✔
112
  }
1✔
113

114
  public CommonParameters(String[] arguments)  throws ParseException {
1✔
115
    cmd = parser.parse(getOptions(), arguments);
1✔
116

117
    readSchemaType();
1✔
118
    readMarcVersion();
1✔
119
    readMarcFormat();
1✔
120
    readDataSource();
1✔
121
    doHelp = cmd.hasOption("help");
1✔
122
    doLog = !cmd.hasOption("nolog");
1✔
123
    readLimit();
1✔
124
    readOffset();
1✔
125
    if (offset > -1 && limit > -1)
1✔
126
      limit += offset;
1✔
127
    readId();
1✔
128
    readDefaultRecordType();
1✔
129
    setAlephseq(cmd.hasOption("alephseq"));
1✔
130
    fixAlephseq = cmd.hasOption("fixAlephseq");
1✔
131
    fixAlma = cmd.hasOption("fixAlma");
1✔
132
    fixKbr = cmd.hasOption("fixKbr");
1✔
133
    setMarcxml(cmd.hasOption("marcxml"));
1✔
134
    lineSeparated = cmd.hasOption("lineSeparated");
1✔
135
    readOutputDir();
1✔
136
    trimId = cmd.hasOption("trimId");
1✔
137
    readIgnorableFields();
1✔
138
    readIgnorableRecords();
1✔
139
    readAllowableRecords();
1✔
140
    readDefaultEncoding();
1✔
141
    readAlephseqLineType();
1✔
142
    readPicaIdField();
1✔
143
    readPicaSubfieldSeparator();
1✔
144
    readPicaSchemaFile();
1✔
145
    readPicaRecordType();
1✔
146
    readGroupBy();
1✔
147
    readGroupListFile();
1✔
148
    readSolrForScoresUrl();
1✔
149

150
    args = cmd.getArgs();
1✔
151
  }
1✔
152

153
  private void readPicaSchemaFile() {
154
    if (cmd.hasOption("picaSchemaFile"))
1✔
155
      picaSchemaFile = cmd.getOptionValue("picaSchemaFile");
×
156
  }
1✔
157

158
  private void readPicaRecordType() {
159
    if (cmd.hasOption("picaRecordType"))
1✔
160
      picaRecordTypeField = cmd.getOptionValue("picaRecordType");
1✔
161
  }
1✔
162

163
  private void readGroupBy() {
164
    if (cmd.hasOption("groupBy"))
1✔
165
      groupBy = cmd.getOptionValue("groupBy");
1✔
166
  }
1✔
167

168
  private void readGroupListFile() {
169
    if (cmd.hasOption("groupListFile"))
1✔
170
      groupListFile = cmd.getOptionValue("groupListFile");
1✔
171
  }
1✔
172

173
  private void readSolrForScoresUrl() {
174
    if (cmd.hasOption("solrForScoresUrl"))
1✔
175
      solrForScoresUrl = cmd.getOptionValue("solrForScoresUrl");
1✔
176
  }
1✔
177

178
  private void readPicaSubfieldSeparator() {
179
    if (cmd.hasOption("picaSubfieldSeparator"))
1✔
180
      picaSubfieldSeparator = cmd.getOptionValue("picaSubfieldSeparator");
1✔
181
  }
1✔
182

183
  private void readPicaIdField() {
184
    if (cmd.hasOption("picaIdField"))
1✔
185
      picaIdField = cmd.getOptionValue("picaIdField");
1✔
186
  }
1✔
187

188
  private void readAlephseqLineType() throws ParseException {
189
    if (cmd.hasOption("alephseqLineType"))
1✔
190
      setAlephseqLineType(cmd.getOptionValue("alephseqLineType"));
1✔
191
  }
1✔
192

193
  private void readDefaultEncoding() {
194
    if (cmd.hasOption("defaultEncoding"))
1✔
195
      setDefaultEncoding(cmd.getOptionValue("defaultEncoding"));
1✔
196
  }
1✔
197

198
  private void readIgnorableRecords() {
199
    ignorableRecords = cmd.hasOption("ignorableRecords") ? cmd.getOptionValue("ignorableRecords") : "";
1✔
200
    setRecordIgnorator(ignorableRecords);
1✔
201
  }
1✔
202

203
  private void readAllowableRecords() {
204
    String allowableRecords = cmd.hasOption("allowableRecords") ? cmd.getOptionValue("allowableRecords") : "";
1✔
205
    setRecordFilter(allowableRecords);
1✔
206
  }
1✔
207

208
  private void readIgnorableFields() {
209
    if (cmd.hasOption("ignorableFields"))
1✔
210
      setIgnorableFields(cmd.getOptionValue("ignorableFields"));
1✔
211
  }
1✔
212

213
  private void readOutputDir() {
214
    if (cmd.hasOption("outputDir"))
1✔
215
      outputDir = cmd.getOptionValue("outputDir");
1✔
216
  }
1✔
217

218
  private void readDefaultRecordType() throws ParseException {
219
    if (cmd.hasOption("defaultRecordType"))
1✔
220
      setDefaultRecordType(cmd.getOptionValue("defaultRecordType"));
1✔
221
  }
1✔
222

223
  private void readId() {
224
    if (cmd.hasOption("id"))
1✔
225
      id = cmd.getOptionValue("id").trim();
1✔
226
  }
1✔
227

228
  private void readOffset() {
229
    if (cmd.hasOption("offset"))
1✔
230
      offset = Integer.parseInt(cmd.getOptionValue("offset"));
1✔
231
  }
1✔
232

233
  private void readLimit() {
234
    if (cmd.hasOption("limit"))
1✔
235
      limit = Integer.parseInt(cmd.getOptionValue("limit"));
1✔
236
  }
1✔
237

238
  private void readDataSource() throws ParseException {
239
    if (cmd.hasOption("dataSource"))
1✔
240
      setDataSource(cmd.getOptionValue("dataSource"));
1✔
241
  }
1✔
242

243
  private void readSchemaType() throws ParseException {
244
    if (cmd.hasOption("schemaType"))
1✔
245
      setSchemaType(cmd.getOptionValue("schemaType"));
1✔
246
  }
1✔
247

248
  private void setSchemaType(String input) throws ParseException {
249
    try {
250
      schemaType = SchemaType.valueOf(input);
1✔
251
    } catch (IllegalArgumentException e) {
1✔
252
      throw new ParseException(String.format("Unrecognized schemaType parameter value: '%s'", input));
1✔
253
    }
1✔
254
  }
1✔
255

256
  private void readMarcFormat() throws ParseException {
257
    if (cmd.hasOption("marcFormat"))
1✔
258
      setMarcFormat(cmd.getOptionValue("marcFormat"));
1✔
259
  }
1✔
260

261
  private void readMarcVersion() throws ParseException {
262
    if (cmd.hasOption("marcVersion"))
1✔
263
      setMarcVersion(cmd.getOptionValue("marcVersion"));
1✔
264
  }
1✔
265

266
  private void setAlephseqLineType(String alephseqLineTypeInput) throws ParseException {
267
    try {
268
      alephseqLineType = AlephseqLine.TYPE.valueOf(cmd.getOptionValue("alephseqLineType"));
1✔
269
    } catch (IllegalArgumentException e) {
1✔
270
      throw new ParseException(String.format("Unrecognized alephseqLineType parameter value: '%s'", alephseqLineTypeInput));
1✔
271
    }
1✔
272
  }
1✔
273

274
  public Options getOptions() {
275
    if (!isOptionSet)
1✔
276
      setOptions();
1✔
277
    return options;
1✔
278
  }
279

280
  public MarcVersion getMarcVersion() {
281
    return marcVersion;
1✔
282
  }
283

284
  public void setMarcVersion(MarcVersion marcVersion) {
285
    this.marcVersion = marcVersion;
×
286
  }
×
287

288
  public void setMarcVersion(String marcVersion) throws ParseException {
289
    this.marcVersion = MarcVersion.byCode(marcVersion.trim());
1✔
290
    if (this.marcVersion == null)
1✔
291
      throw new ParseException(String.format("Unrecognized marcVersion parameter value: '%s'", marcVersion));
1✔
292
  }
1✔
293

294
  public MarcFormat getMarcFormat() {
295
    return marcFormat;
1✔
296
  }
297

298
  public void setMarcFormat(MarcFormat marcFormat) {
299
    this.marcFormat = marcFormat;
×
300
  }
×
301

302
  public void setMarcFormat(String marcFormatString) throws ParseException {
303
    marcFormat = MarcFormat.byCode(marcFormatString.trim());
1✔
304
    if (marcFormat == null)
1✔
305
      throw new ParseException(String.format("Unrecognized marcFormat parameter value: '%s'", marcFormatString));
×
306
    if (marcFormat.equals(MarcFormat.ALEPHSEQ))
1✔
307
      setAlephseq(true);
1✔
308
    if (marcFormat.equals(MarcFormat.XML))
1✔
309
      setMarcxml(true);
×
310
    if (marcFormat.equals(MarcFormat.LINE_SEPARATED))
1✔
311
      setLineSeparated(true);
×
312
    if (marcFormat.equals(MarcFormat.PICA_NORMALIZED) || marcFormat.equals(MarcFormat.PICA_PLAIN))
1✔
313
      schemaType = SchemaType.PICA;
1✔
314
  }
1✔
315

316
  public DataSource getDataSource() {
317
    return dataSource;
1✔
318
  }
319

320
  public void setDataSource(DataSource dataSource) {
321
    this.dataSource = dataSource;
×
322
  }
×
323

324
  public void setDataSource(String dataSourceString) throws ParseException {
325
    dataSource = DataSource.byCode(dataSourceString.trim());
1✔
326
    if (dataSource == null)
1✔
327
      throw new ParseException(String.format("Unrecognized marcFormat parameter value: '%s'", dataSourceString));
1✔
328
  }
1✔
329

330
  public boolean doHelp() {
331
    return doHelp;
1✔
332
  }
333

334
  public void setDoHelp(boolean doHelp) {
335
    this.doHelp = doHelp;
×
336
  }
×
337

338
  public boolean doLog() {
339
    return doLog;
1✔
340
  }
341

342
  public void setDoLog(boolean doLog) {
343
    this.doLog = doLog;
×
344
  }
×
345

346
  public String[] getArgs() {
347
    return args;
1✔
348
  }
349

350
  public int getLimit() {
351
    return limit;
1✔
352
  }
353

354
  public void setLimit(int limit) {
355
    this.limit = limit;
×
356
  }
×
357

358
  public int getOffset() {
359
    return offset;
1✔
360
  }
361

362
  public void setOffset(int offset) {
363
    this.offset = offset;
×
364
  }
×
365

366
  public boolean hasId() {
367
    return StringUtils.isNotBlank(id);
1✔
368
  }
369

370
  public String getId() {
371
    return id;
1✔
372
  }
373

374
  public void setId(String id) {
375
    this.id = id;
×
376
  }
×
377

378
  public MarcLeader.Type getDefaultRecordType() {
379
    return defaultRecordType;
1✔
380
  }
381

382
  public void setDefaultRecordType(MarcLeader.Type defaultRecordType) {
383
    this.defaultRecordType = defaultRecordType;
×
384
  }
×
385

386
  public void setDefaultRecordType(String defaultRecordType) throws ParseException {
387
    this.defaultRecordType = MarcLeader.Type.valueOf(defaultRecordType);
1✔
388
    if (this.defaultRecordType == null)
1✔
389
      throw new ParseException(String.format("Unrecognized defaultRecordType parameter value: '%s'", defaultRecordType));
×
390
  }
1✔
391

392
  public boolean fixAlephseq() {
393
    return fixAlephseq;
1✔
394
  }
395

396
  public void setFixAlephseq(boolean fixAlephseq) {
397
    this.fixAlephseq = fixAlephseq;
×
398
  }
×
399

400
  public boolean fixAlma() {
401
    return fixAlma;
1✔
402
  }
403

404
  public void setFixAlma(boolean fixAlma) {
405
    this.fixAlma = fixAlma;
×
406
  }
×
407

408
  public boolean fixKbr() {
409
    return fixKbr;
1✔
410
  }
411

412
  public void setFixKbr(boolean fixKbr) {
413
    this.fixKbr = fixKbr;
×
414
  }
×
415

416
  public String getReplacementInControlFields() {
417
    if (fixAlephseq())
1✔
418
      return "^";
×
419
    else if (fixAlma() || fixKbr())
1✔
420
      return "#";
×
421
    else
422
      return null;
1✔
423
  }
424

425
  public boolean isAlephseq() {
426
    return alephseq;
1✔
427
  }
428

429
  public void setAlephseq(boolean alephseq) {
430
    this.alephseq = alephseq;
1✔
431
    if (alephseq)
1✔
432
      marcFormat = MarcFormat.ALEPHSEQ;
1✔
433
  }
1✔
434

435
  public boolean isMarcxml() {
436
    return marcxml;
1✔
437
  }
438

439
  public void setMarcxml(boolean marcxml) {
440
    this.marcxml = marcxml;
1✔
441
    if (marcxml)
1✔
442
      marcFormat = MarcFormat.XML;
1✔
443
  }
1✔
444

445
  public boolean isLineSeparated() {
446
    return lineSeparated;
1✔
447
  }
448

449
  public void setLineSeparated(boolean lineSeparated) {
450
    this.lineSeparated = lineSeparated;
×
451
  }
×
452

453
  public String getOutputDir() {
454
    return outputDir;
1✔
455
  }
456

457
  public void setOutputDir(String outputDir) {
458
    this.outputDir = outputDir;
×
459
  }
×
460

461
  public boolean getTrimId() {
462
    return trimId;
1✔
463
  }
464

465
  public void setTrimId(boolean trimId) {
466
    this.trimId = trimId;
×
467
  }
×
468

469
  public IgnorableFields getIgnorableFields() {
470
    return ignorableFields;
1✔
471
  }
472

473
  public void setIgnorableFields(String ignorableFields) {
474
    this.ignorableFields.parseFields(ignorableFields.trim());
1✔
475
  }
1✔
476

477
  public RecordIgnorator getRecordIgnorator() {
478
    return recordIgnorator;
1✔
479
  }
480

481
  public void setRecordIgnorator(String ignorableRecords) {
482
    this.recordIgnorator = RecordIgnoratorFactory.create(schemaType, ignorableRecords.trim());
1✔
483
  }
1✔
484

485
  public RecordFilter getRecordFilter() {
486
    return recordFilter;
1✔
487
  }
488

489
  public void setRecordFilter(String allowableRecords) {
490
    this.recordFilter = RecordFilterFactory.create(schemaType, allowableRecords.trim());
1✔
491
    System.err.println(this.recordFilter);
1✔
492
  }
1✔
493

494
  public InputStream getStream() {
495
    return stream;
1✔
496
  }
497

498
  public void setStream(InputStream stream) {
499
    this.stream = stream;
×
500
  }
×
501

502
  public String getDefaultEncoding() {
503
    return defaultEncoding;
1✔
504
  }
505

506
  private void setDefaultEncoding(String defaultEncoding) {
507
    this.defaultEncoding = defaultEncoding;
1✔
508
  }
1✔
509

510
  public AlephseqLine.TYPE getAlephseqLineType() {
511
    return this.alephseqLineType;
1✔
512
  }
513

514
  public String getPicaIdField() {
515
    return picaIdField;
1✔
516
  }
517

518
  public void setPicaIdField(String picaIdField) {
519
    this.picaIdField = picaIdField;
×
520
  }
×
521

522
  public String getPicaSubfieldSeparator() {
523
    return picaSubfieldSeparator;
1✔
524
  }
525

526
  public void setPicaSubfieldSeparator(String picaSubfieldSeparator) {
527
    this.picaSubfieldSeparator = picaSubfieldSeparator;
×
528
  }
×
529

530
  public String getPicaSchemaFile() {
531
    return picaSchemaFile;
1✔
532
  }
533

534
  public SchemaType getSchemaType() {
535
    return schemaType;
1✔
536
  }
537

538
  public String getPicaRecordTypeField() {
539
    return picaRecordTypeField;
1✔
540
  }
541

542
  public boolean isMarc21() {
543
    return schemaType.equals(SchemaType.MARC21);
1✔
544
  }
545

546
  public boolean isPica() {
547
    return schemaType.equals(SchemaType.PICA);
1✔
548
  }
549

550
  public boolean isUnimarc() {
551
    return schemaType.equals(SchemaType.UNIMARC);
1✔
552
  }
553

554
  public String getGroupBy() {
555
    return groupBy;
1✔
556
  }
557

558
  public String getGroupListFile() {
559
    return groupListFile;
1✔
560
  }
561

562
  public String getSolrForScoresUrl() {
563
    return solrForScoresUrl;
1✔
564
  }
565

566
  public String formatParameters() {
567
    String text = "";
1✔
568
    text += String.format("schemaType: %s%n", schemaType);
1✔
569
    text += String.format("marcVersion: %s, %s%n", marcVersion.getCode(), marcVersion.getLabel());
1✔
570
    text += String.format("marcFormat: %s, %s%n", marcFormat.getCode(), marcFormat.getLabel());
1✔
571
    text += String.format("dataSource: %s, %s%n", dataSource.getCode(), dataSource.getLabel());
1✔
572
    text += String.format("limit: %d%n", limit);
1✔
573
    text += String.format("offset: %s%n", offset);
1✔
574
    text += String.format("MARC files: %s%n", StringUtils.join(args, ", "));
1✔
575
    text += String.format("id: %s%n", id);
1✔
576
    text += String.format("defaultRecordType: %s%n", defaultRecordType);
1✔
577
    text += String.format("fixAlephseq: %s%n", fixAlephseq);
1✔
578
    text += String.format("fixAlma: %s%n", fixAlma);
1✔
579
    text += String.format("alephseq: %s%n", alephseq);
1✔
580
    text += String.format("marcxml: %s%n", marcxml);
1✔
581
    text += String.format("lineSeparated: %s%n", lineSeparated);
1✔
582
    text += String.format("outputDir: %s%n", outputDir);
1✔
583
    text += String.format("trimId: %s%n", trimId);
1✔
584
    text += String.format("ignorableFields: %s%n", ignorableFields);
1✔
585
    text += String.format("allowableRecords: %s%n", recordFilter);
1✔
586
    text += String.format("ignorableRecords: %s%n", recordIgnorator);
1✔
587
    text += String.format("defaultEncoding: %s%n", defaultEncoding);
1✔
588
    text += String.format("alephseqLineType: %s%n", alephseqLineType);
1✔
589
    if (isPica()) {
1✔
590
      text += String.format("picaIdField: %s%n", picaIdField);
1✔
591
      text += String.format("picaSubfieldSeparator: %s%n", picaSubfieldSeparator);
1✔
592
      text += String.format("picaRecordType: %s%n", picaRecordTypeField);
1✔
593
    }
594
    text += String.format("groupBy: %s%n", groupBy);
1✔
595
    text += String.format("groupListFile: %s%n", groupListFile);
1✔
596
    text += String.format("solrForScoresUrl: %s%n", solrForScoresUrl);
1✔
597

598
    return text;
1✔
599
  }
600
}
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