Skip to content

Commit 05c1874

Browse files
Added a better means to collect the metaschema-related CLI commands for reuse.
1 parent b340ea4 commit 05c1874

File tree

2 files changed

+46
-8
lines changed

2 files changed

+46
-8
lines changed

metaschema-cli/src/main/java/gov/nist/secauto/metaschema/cli/CLI.java

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,7 @@
2626

2727
package gov.nist.secauto.metaschema.cli;
2828

29-
import gov.nist.secauto.metaschema.cli.commands.GenerateSchemaCommand;
30-
import gov.nist.secauto.metaschema.cli.commands.ValidateContentUsingModuleCommand;
31-
import gov.nist.secauto.metaschema.cli.commands.ValidateModuleCommand;
32-
import gov.nist.secauto.metaschema.cli.commands.metapath.MetapathCommand;
29+
import gov.nist.secauto.metaschema.cli.commands.MetaschemaCommands;
3330
import gov.nist.secauto.metaschema.cli.processor.CLIProcessor;
3431
import gov.nist.secauto.metaschema.cli.processor.ExitStatus;
3532
import gov.nist.secauto.metaschema.cli.processor.command.CommandService;
@@ -57,10 +54,7 @@ public static ExitStatus runCli(String... args) {
5754
new MetaschemaJavaVersion(),
5855
new MetaschemaVersion()));
5956
CLIProcessor processor = new CLIProcessor("metaschema-cli", versions);
60-
processor.addCommandHandler(new ValidateModuleCommand());
61-
processor.addCommandHandler(new GenerateSchemaCommand());
62-
processor.addCommandHandler(new ValidateContentUsingModuleCommand());
63-
processor.addCommandHandler(new MetapathCommand());
57+
MetaschemaCommands.COMMANDS.forEach(processor::addCommandHandler);
6458

6559
CommandService.getInstance().getCommands().stream().forEach(command -> {
6660
assert command != null;
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
/*
2+
* Portions of this software was developed by employees of the National Institute
3+
* of Standards and Technology (NIST), an agency of the Federal Government and is
4+
* being made available as a public service. Pursuant to title 17 United States
5+
* Code Section 105, works of NIST employees are not subject to copyright
6+
* protection in the United States. This software may be subject to foreign
7+
* copyright. Permission in the United States and in foreign countries, to the
8+
* extent that NIST may hold copyright, to use, copy, modify, create derivative
9+
* works, and distribute this software and its documentation without fee is hereby
10+
* granted on a non-exclusive basis, provided that this notice and disclaimer
11+
* of warranty appears in all copies.
12+
*
13+
* THE SOFTWARE IS PROVIDED 'AS IS' WITHOUT ANY WARRANTY OF ANY KIND, EITHER
14+
* EXPRESSED, IMPLIED, OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, ANY WARRANTY
15+
* THAT THE SOFTWARE WILL CONFORM TO SPECIFICATIONS, ANY IMPLIED WARRANTIES OF
16+
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND FREEDOM FROM
17+
* INFRINGEMENT, AND ANY WARRANTY THAT THE DOCUMENTATION WILL CONFORM TO THE
18+
* SOFTWARE, OR ANY WARRANTY THAT THE SOFTWARE WILL BE ERROR FREE. IN NO EVENT
19+
* SHALL NIST BE LIABLE FOR ANY DAMAGES, INCLUDING, BUT NOT LIMITED TO, DIRECT,
20+
* INDIRECT, SPECIAL OR CONSEQUENTIAL DAMAGES, ARISING OUT OF, RESULTING FROM,
21+
* OR IN ANY WAY CONNECTED WITH THIS SOFTWARE, WHETHER OR NOT BASED UPON WARRANTY,
22+
* CONTRACT, TORT, OR OTHERWISE, WHETHER OR NOT INJURY WAS SUSTAINED BY PERSONS OR
23+
* PROPERTY OR OTHERWISE, AND WHETHER OR NOT LOSS WAS SUSTAINED FROM, OR AROSE OUT
24+
* OF THE RESULTS OF, OR USE OF, THE SOFTWARE OR SERVICES PROVIDED HEREUNDER.
25+
*/
26+
27+
package gov.nist.secauto.metaschema.cli.commands;
28+
29+
import gov.nist.secauto.metaschema.cli.commands.metapath.MetapathCommand;
30+
import gov.nist.secauto.metaschema.cli.processor.command.ICommand;
31+
32+
import java.util.List;
33+
34+
public class MetaschemaCommands {
35+
public static final List<ICommand> COMMANDS = List.of(
36+
new ValidateModuleCommand(),
37+
new GenerateSchemaCommand(),
38+
new ValidateContentUsingModuleCommand(),
39+
new MetapathCommand());
40+
41+
private MetaschemaCommands() {
42+
// disable construction
43+
}
44+
}

0 commit comments

Comments
 (0)