Class Validator
java.lang.Object
neqsim.mcp.runners.Validator
Pre-flight validator for NeqSim JSON inputs (flash or process definitions).
Checks the JSON structure and values before running any simulation. Returns a structured JSON response listing all issues found — each with severity, code, message, and remediation hint. This is designed as a "dry-run" MCP tool that catches configuration errors before they cause cryptic simulation failures.
Checks performed:
- Well-formed JSON
- Required fields present (components for flash; fluid + process for process)
- Component names valid (via
ComponentQuery) - Thermodynamic model recognized
- Flash type recognized (for flash inputs)
- Temperature and pressure in physically reasonable ranges
- Composition sums are reasonable (warn if far from 1.0)
- Equipment types recognized (for process inputs)
- Required flash specs present (enthalpy for PH, entropy for PS, volume for TV)
- Version:
- 1.0
- Author:
- Even Solbraa
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescription(package private) static classRepresents a single validation issue. -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final doubleComposition sum tolerance for warnings.private static final com.google.gson.GsonKnown process equipment types recognized by JsonProcessBuilder and EquipmentFactory.private static final doubleMaximum physically reasonable pressure in bara.private static final doubleMaximum physically reasonable temperature in Kelvin.private static final doubleMinimum physically reasonable pressure in bara.private static final doubleMinimum physically reasonable temperature in Kelvin. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate static StringbuildResponse(List<Validator.Issue> issues) Builds the JSON response from the list of issues.static StringValidates a JSON input (flash or process definition) without running any simulation.private static voidvalidateComponents(com.google.gson.JsonObject components, List<Validator.Issue> issues) Validates a components map — checks names and composition sum.private static voidvalidateFlashDefinition(com.google.gson.JsonObject root, List<Validator.Issue> issues) Validates a flash definition JSON.private static voidvalidateFluidBlock(com.google.gson.JsonObject fluidDef, List<Validator.Issue> issues) Validates a fluid block (used in process definitions).private static voidvalidatePressure(com.google.gson.JsonObject root, List<Validator.Issue> issues) Validates pressure if present.private static voidvalidateProcessDefinition(com.google.gson.JsonObject root, List<Validator.Issue> issues) Validates a process definition JSON.private static voidvalidateProcessUnit(com.google.gson.JsonObject unit, int index, Set<String> definedNames, List<Validator.Issue> issues) Validates a single process unit definition.private static voidvalidateTemperature(com.google.gson.JsonObject root, List<Validator.Issue> issues) Validates temperature if present.
-
Field Details
-
GSON
private static final com.google.gson.Gson GSON -
MIN_TEMP_K
private static final double MIN_TEMP_KMinimum physically reasonable temperature in Kelvin.- See Also:
-
MAX_TEMP_K
private static final double MAX_TEMP_KMaximum physically reasonable temperature in Kelvin.- See Also:
-
MIN_PRESS_BARA
private static final double MIN_PRESS_BARAMinimum physically reasonable pressure in bara.- See Also:
-
MAX_PRESS_BARA
private static final double MAX_PRESS_BARAMaximum physically reasonable pressure in bara.- See Also:
-
COMP_SUM_TOLERANCE
private static final double COMP_SUM_TOLERANCEComposition sum tolerance for warnings.- See Also:
-
KNOWN_MODELS
-
KNOWN_FLASH_TYPES
-
KNOWN_EQUIPMENT_TYPES
-
-
Constructor Details
-
Validator
private Validator()Private constructor — all methods are static.
-
-
Method Details
-
validate
-
validateFlashDefinition
private static void validateFlashDefinition(com.google.gson.JsonObject root, List<Validator.Issue> issues) Validates a flash definition JSON.- Parameters:
root- the parsed JSONissues- the issue list to populate
-
validateProcessDefinition
private static void validateProcessDefinition(com.google.gson.JsonObject root, List<Validator.Issue> issues) Validates a process definition JSON.- Parameters:
root- the parsed JSONissues- the issue list to populate
-
validateFluidBlock
private static void validateFluidBlock(com.google.gson.JsonObject fluidDef, List<Validator.Issue> issues) Validates a fluid block (used in process definitions).- Parameters:
fluidDef- the fluid JSON objectissues- the issue list to populate
-
validateProcessUnit
private static void validateProcessUnit(com.google.gson.JsonObject unit, int index, Set<String> definedNames, List<Validator.Issue> issues) Validates a single process unit definition.- Parameters:
unit- the unit JSON objectindex- the unit index in the process arraydefinedNames- set of equipment names defined so farissues- the issue list to populate
-
validateComponents
private static void validateComponents(com.google.gson.JsonObject components, List<Validator.Issue> issues) Validates a components map — checks names and composition sum.- Parameters:
components- the components JSON objectissues- the issue list to populate
-
validateTemperature
private static void validateTemperature(com.google.gson.JsonObject root, List<Validator.Issue> issues) Validates temperature if present.- Parameters:
root- the root JSONissues- the issue list to populate
-
validatePressure
Validates pressure if present.- Parameters:
root- the root JSONissues- the issue list to populate
-
buildResponse
Builds the JSON response from the list of issues.- Parameters:
issues- the collected issues- Returns:
- JSON string with validation results
-