This commit is contained in:
markiantorno 2020-04-03 14:12:47 -04:00
parent 0e45efb766
commit 7affad01fc
8 changed files with 43 additions and 41 deletions

View File

@ -54,7 +54,7 @@ import org.hl7.fhir.r5.model.ImplementationGuide;
import org.hl7.fhir.r5.model.StructureDefinition; import org.hl7.fhir.r5.model.StructureDefinition;
import org.hl7.fhir.utilities.Utilities; import org.hl7.fhir.utilities.Utilities;
import org.hl7.fhir.utilities.VersionUtilities; import org.hl7.fhir.utilities.VersionUtilities;
import org.hl7.fhir.validation.cliutils.*; import org.hl7.fhir.validation.cli.*;
/** /**
* A executable class that will validate one or more FHIR resources against * A executable class that will validate one or more FHIR resources against
@ -114,9 +114,9 @@ public class Validator {
System.out.println("Specified destination (-dest parameter) is not valid: \"" + dest + "\")"); System.out.println("Specified destination (-dest parameter) is not valid: \"" + dest + "\")");
else { else {
// first, prepare the context // first, prepare the context
String txLog = Common.getTerminologyServerLog(args); String txLog = Params.getTerminologyServerLog(args);
ValidationEngine validator = Common.getValidationEngine(args, txLog); ValidationEngine validator = Common.getValidationEngine(args, txLog);
Common.checkIGFileReferences(args); Params.checkIGFileReferences(args);
Comparison.doLeftRightComparison(args, dest, validator); Comparison.doLeftRightComparison(args, dest, validator);
} }
} else { } else {

View File

@ -1,4 +1,4 @@
package org.hl7.fhir.validation.cliutils; package org.hl7.fhir.validation.cli;
import org.hl7.fhir.validation.Validator; import org.hl7.fhir.validation.Validator;

View File

@ -1,12 +1,10 @@
package org.hl7.fhir.validation.cliutils; package org.hl7.fhir.validation.cli;
import org.hl7.fhir.r5.model.Constants; import org.hl7.fhir.r5.model.Constants;
import org.hl7.fhir.r5.model.FhirPublication; import org.hl7.fhir.r5.model.FhirPublication;
import org.hl7.fhir.utilities.VersionUtilities; import org.hl7.fhir.utilities.VersionUtilities;
import org.hl7.fhir.validation.ValidationEngine; import org.hl7.fhir.validation.ValidationEngine;
import java.io.File;
public class Common { public class Common {
public static String getVersion(String[] args) { public static String getVersion(String[] args) {
@ -77,15 +75,6 @@ public class Common {
} }
} }
public static String getTerminologyServerLog(String[] args) {
String txLog = null;
if (Params.hasParam(args, "-txLog")) {
txLog = Params.getParam(args, "-txLog");
new File(txLog).delete();
}
return txLog;
}
public static ValidationEngine getValidationEngine(String[] args, String txLog) throws Exception { public static ValidationEngine getValidationEngine(String[] args, String txLog) throws Exception {
String v = Common.getVersion(args); String v = Common.getVersion(args);
String definitions = VersionUtilities.packageForVersion(v) + "#" + v; String definitions = VersionUtilities.packageForVersion(v) + "#" + v;
@ -93,18 +82,4 @@ public class Common {
return new ValidationEngine(definitions, "http://tx.fhir.org", txLog, FhirPublication.fromCode(v), v); return new ValidationEngine(definitions, "http://tx.fhir.org", txLog, FhirPublication.fromCode(v), v);
} }
public static void checkIGFileReferences(String[] args) {
for (int i = 0; i < args.length; i++) {
if ("-ig".equals(args[i])) {
if (i + 1 == args.length)
throw new Error("Specified -ig without indicating ig file");
else {
String s = args[++i];
if (!s.startsWith("hl7.fhir.core-")) {
System.out.println("Load Package: " + s);
}
}
}
}
}
} }

View File

@ -1,4 +1,4 @@
package org.hl7.fhir.validation.cliutils; package org.hl7.fhir.validation.cli;
import org.hl7.fhir.r5.conformance.CapabilityStatementUtilities; import org.hl7.fhir.r5.conformance.CapabilityStatementUtilities;
import org.hl7.fhir.r5.conformance.ProfileComparer; import org.hl7.fhir.r5.conformance.ProfileComparer;

View File

@ -1,4 +1,4 @@
package org.hl7.fhir.validation.cliutils; package org.hl7.fhir.validation.cli;
import org.hl7.fhir.r5.model.Constants; import org.hl7.fhir.r5.model.Constants;
import org.hl7.fhir.utilities.VersionUtilities; import org.hl7.fhir.utilities.VersionUtilities;
@ -7,6 +7,11 @@ import org.hl7.fhir.utilities.cache.ToolsVersion;
import java.io.IOException; import java.io.IOException;
/**
* Class for displaying output to the cli user.
*
* TODO - Clean this up for localization
*/
public class Display { public class Display {
public static void printCliArgumentsAndInfo(String[] args) throws IOException { public static void printCliArgumentsAndInfo(String[] args) throws IOException {

View File

@ -1,8 +1,9 @@
package org.hl7.fhir.validation.cliutils; package org.hl7.fhir.validation.cli;
import org.hl7.fhir.utilities.VersionUtilities; import org.hl7.fhir.utilities.VersionUtilities;
import org.hl7.fhir.validation.Validator; import org.hl7.fhir.validation.Validator;
import java.io.File;
import java.util.Arrays; import java.util.Arrays;
import java.util.Locale; import java.util.Locale;
@ -57,7 +58,7 @@ public class Params {
} }
/** /**
* Fetches the vlaue for the passed in param from the provided list of params. * Fetches the value for the passed in param from the provided list of params.
* *
* @param args Array of params to search. * @param args Array of params to search.
* @param param {@link String} param keyword to search for. * @param param {@link String} param keyword to search for.
@ -71,11 +72,7 @@ public class Params {
} }
/** /**
* TODO Don't do this all in one for loop. * TODO Don't do this all in one for loop. Use the above methods.
*
* @param args
* @return
* @throws Exception
*/ */
public static CliContext loadCliContext(String[] args) throws Exception { public static CliContext loadCliContext(String[] args) throws Exception {
CliContext cliContext = new CliContext(); CliContext cliContext = new CliContext();
@ -207,4 +204,28 @@ public class Params {
throw new Exception("Must provide at least one source file"); throw new Exception("Must provide at least one source file");
return cliContext; return cliContext;
} }
public static String getTerminologyServerLog(String[] args) {
String txLog = null;
if (hasParam(args, "-txLog")) {
txLog = getParam(args, "-txLog");
new File(txLog).delete();
}
return txLog;
}
public static void checkIGFileReferences(String[] args) {
for (int i = 0; i < args.length; i++) {
if (IMPLEMENTATION_GUIDE.equals(args[i])) {
if (i + 1 == args.length)
throw new Error("Specified -ig without indicating ig file");
else {
String s = args[++i];
if (!s.startsWith("hl7.fhir.core-")) {
System.out.println("Load Package: " + s);
}
}
}
}
}
} }

View File

@ -1,4 +1,4 @@
package org.hl7.fhir.validation.cliutils; package org.hl7.fhir.validation.cli;
import java.util.Arrays; import java.util.Arrays;
import java.util.Optional; import java.util.Optional;

View File

@ -1,4 +1,4 @@
package org.hl7.fhir.validation.cliutils; package org.hl7.fhir.validation.cli;
import org.hl7.fhir.r5.elementmodel.Manager; import org.hl7.fhir.r5.elementmodel.Manager;
import org.hl7.fhir.r5.formats.IParser; import org.hl7.fhir.r5.formats.IParser;
@ -17,6 +17,7 @@ import java.util.List;
import java.util.Set; import java.util.Set;
public class ValidationUtils { public class ValidationUtils {
public static void validateSources(CliContext cliContext, ValidationEngine validator) throws Exception { public static void validateSources(CliContext cliContext, ValidationEngine validator) throws Exception {
if (cliContext.getProfiles().size() > 0) if (cliContext.getProfiles().size() > 0)
System.out.println(" .. validate " + cliContext.getSources() + " against " + cliContext.getProfiles().toString()); System.out.println(" .. validate " + cliContext.getSources() + " against " + cliContext.getProfiles().toString());