diff --git a/CLAUDE.md b/CLAUDE.md index 6e291ef1e..964a548a1 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -128,9 +128,9 @@ mvn install -DskipTests # Generate binding classes using bootstrap POM (choose the appropriate module) # Each bootstrap POM generates classes directly into src/main/java -mvn -f metaschema-testing/pom-bootstrap.xml generate-sources -mvn -f databind/pom-bootstrap-config.xml generate-sources -mvn -f databind/pom-bootstrap-model.xml generate-sources +mvn -f metaschema-testing/pom-bootstrap.xml process-sources +mvn -f databind/pom-bootstrap-config.xml process-sources +mvn -f databind/pom-bootstrap-model.xml process-sources ``` See the README.md files in each module for detailed instructions. diff --git a/cli-processor/src/main/java/gov/nist/secauto/metaschema/cli/processor/command/CommandExecutionException.java b/cli-processor/src/main/java/gov/nist/secauto/metaschema/cli/processor/command/CommandExecutionException.java index 3f980da96..bf814eeec 100644 --- a/cli-processor/src/main/java/gov/nist/secauto/metaschema/cli/processor/command/CommandExecutionException.java +++ b/cli-processor/src/main/java/gov/nist/secauto/metaschema/cli/processor/command/CommandExecutionException.java @@ -15,6 +15,9 @@ */ public class CommandExecutionException extends Exception { + /** + * The exit code indicating the type of error that occurred. + */ private final ExitCode exitCode; /** diff --git a/cli-processor/src/main/java/module-info.java b/cli-processor/src/main/java/module-info.java new file mode 100644 index 000000000..935985dfe --- /dev/null +++ b/cli-processor/src/main/java/module-info.java @@ -0,0 +1,35 @@ +/* + * SPDX-FileCopyrightText: none + * SPDX-License-Identifier: CC0-1.0 + */ + +import gov.nist.secauto.metaschema.cli.processor.command.ICommand; + +/** + * Provides a command-line interface processing framework for Metaschema tools. + * + * @uses ICommand to discover CLI commands via service loader + */ +module gov.nist.secauto.metaschema.cli.processor { + // requirements + requires java.base; + + requires transitive gov.nist.secauto.metaschema.core; + + requires static org.eclipse.jdt.annotation; + requires static com.github.spotbugs.annotations; + + requires org.apache.commons.cli; + requires org.jansi.core; + requires nl.talsmasoftware.lazy4j; + requires org.apache.logging.log4j; + requires org.apache.logging.log4j.core; + requires org.apache.logging.log4j.jul; + + exports gov.nist.secauto.metaschema.cli.processor; + exports gov.nist.secauto.metaschema.cli.processor.command; + exports gov.nist.secauto.metaschema.cli.processor.command.impl; + exports gov.nist.secauto.metaschema.cli.processor.completion; + + uses ICommand; +} diff --git a/core/src/main/java/module-info.java b/core/src/main/java/module-info.java index 7a8db5906..6275bf920 100644 --- a/core/src/main/java/module-info.java +++ b/core/src/main/java/module-info.java @@ -18,6 +18,7 @@ * implementing * {@link gov.nist.secauto.metaschema.core.metapath.function.IFunction} */ +@SuppressWarnings("requires-transitive-automatic") module gov.nist.secauto.metaschema.core { // requirements requires java.base; @@ -42,8 +43,8 @@ requires transitive org.json; requires org.jsoup; - // dependencies without a module descriptor - requires transitive everit.json.schema; // needed for validation details + // dependencies without a module descriptor (automatic modules) + requires transitive everit.json.schema; requires transitive flexmark; requires flexmark.ext.escaped.character; requires flexmark.ext.gfm.strikethrough; diff --git a/databind-metaschema/modules b/databind-metaschema/modules index 2faa8c7bd..fc794cc7d 160000 --- a/databind-metaschema/modules +++ b/databind-metaschema/modules @@ -1 +1 @@ -Subproject commit 2faa8c7bd2887a09ebc99abcf56202c8c7634a21 +Subproject commit fc794cc7d0ef92c66658978654e88b752cc496ae diff --git a/databind-metaschema/src/main/java/gov/nist/secauto/metaschema/modules/sarif/SarifValidationHandler.java b/databind-metaschema/src/main/java/gov/nist/secauto/metaschema/modules/sarif/SarifValidationHandler.java index e5c7e35f5..64879b2e6 100644 --- a/databind-metaschema/src/main/java/gov/nist/secauto/metaschema/modules/sarif/SarifValidationHandler.java +++ b/databind-metaschema/src/main/java/gov/nist/secauto/metaschema/modules/sarif/SarifValidationHandler.java @@ -107,12 +107,23 @@ public String getLabel() { @NonNull static final String SARIF_NS = "https://docs.oasis-open.org/sarif/sarif/v2.1.0"; + /** + * The property key for specifying a URL that provides help information for a + * constraint. + */ @NonNull public static final IAttributable.Key SARIF_HELP_URL_KEY = IAttributable.key("help-url", SARIF_NS); + /** + * The property key for specifying plain text help content for a constraint. + */ @NonNull public static final IAttributable.Key SARIF_HELP_TEXT_KEY = IAttributable.key("help-text", SARIF_NS); + /** + * The property key for specifying markdown-formatted help content for a + * constraint. + */ @NonNull public static final IAttributable.Key SARIF_HELP_MARKDOWN_KEY = IAttributable.key("help-markdown", SARIF_NS); diff --git a/databind-metaschema/src/main/java/module-info.java b/databind-metaschema/src/main/java/module-info.java new file mode 100644 index 000000000..60707f9ba --- /dev/null +++ b/databind-metaschema/src/main/java/module-info.java @@ -0,0 +1,27 @@ +/* + * SPDX-FileCopyrightText: none + * SPDX-License-Identifier: CC0-1.0 + */ + +/** + * Provides Metaschema module bindings and validation handlers including SARIF + * output support. + */ +module gov.nist.secauto.metaschema.databind.modules { + // requirements + requires java.base; + + requires transitive gov.nist.secauto.metaschema.core; + requires transitive gov.nist.secauto.metaschema.databind; + requires transitive gov.nist.secauto.metaschema.schemagen; + + requires static org.eclipse.jdt.annotation; + requires static com.github.spotbugs.annotations; + + requires json.schema; + + exports gov.nist.secauto.metaschema.modules.sarif; + + // open generated binding classes for reflection + opens org.schemastore.json.sarif.x210; +} diff --git a/databind/pom-bootstrap-config.xml b/databind/pom-bootstrap-config.xml index 0ea013dcf..e3ffc09cb 100644 --- a/databind/pom-bootstrap-config.xml +++ b/databind/pom-bootstrap-config.xml @@ -3,7 +3,7 @@ This POM is used to regenerate the metaschema-bindings binding classes. It is NOT part of the normal build due to circular dependencies. - Usage: mvn -f databind/pom-bootstrap-config.xml generate-sources + Usage: mvn -f databind/pom-bootstrap-config.xml process-sources This will: 1. Delete existing generated classes in the config/binding package @@ -93,7 +93,7 @@ add-license-headers - generate-sources + process-sources format @@ -116,7 +116,7 @@ format-generated-sources - generate-sources + process-sources format diff --git a/databind/pom-bootstrap-model.xml b/databind/pom-bootstrap-model.xml index 947af2afb..5d2313b95 100644 --- a/databind/pom-bootstrap-model.xml +++ b/databind/pom-bootstrap-model.xml @@ -3,7 +3,7 @@ This POM is used to regenerate the Metaschema model binding classes. It is NOT part of the normal build due to circular dependencies. - Usage: mvn -f databind/pom-bootstrap-model.xml generate-sources + Usage: mvn -f databind/pom-bootstrap-model.xml process-sources This will: 1. Delete existing generated classes in the model/metaschema/binding package @@ -98,7 +98,7 @@ add-license-headers - generate-sources + process-sources format @@ -121,7 +121,7 @@ format-generated-sources - generate-sources + process-sources format diff --git a/databind/src/main/java/gov/nist/secauto/metaschema/databind/DefaultBindingContext.java b/databind/src/main/java/gov/nist/secauto/metaschema/databind/DefaultBindingContext.java index e7ac1835e..21d3dcb51 100644 --- a/databind/src/main/java/gov/nist/secauto/metaschema/databind/DefaultBindingContext.java +++ b/databind/src/main/java/gov/nist/secauto/metaschema/databind/DefaultBindingContext.java @@ -270,6 +270,7 @@ public CLASS deepCopy(@NonNull CLASS other, IBoundO */ @Override @SuppressWarnings({ + "deprecation", "PMD.EmptyFinalizer", "checkstyle:NoFinalizer" }) protected final void finalize() { diff --git a/databind/src/main/java/gov/nist/secauto/metaschema/databind/IBindingContext.java b/databind/src/main/java/gov/nist/secauto/metaschema/databind/IBindingContext.java index 1863442b3..dcd5ff44e 100644 --- a/databind/src/main/java/gov/nist/secauto/metaschema/databind/IBindingContext.java +++ b/databind/src/main/java/gov/nist/secauto/metaschema/databind/IBindingContext.java @@ -519,7 +519,9 @@ default IConstraintValidator newValidator( * the validation configuration * @return the validation result * @throws ConstraintValidationException + * if a constraint violation prevents validation from completing * @throws IllegalArgumentException + * if the node item is not valid for validation */ default IValidationResult validate( @NonNull IDocumentNodeItem nodeItem, @@ -541,7 +543,9 @@ default IValidationResult validate( * the validation configuration * @return the validation result * @throws ConstraintValidationException + * if a constraint violation prevents validation from completing * @throws IllegalArgumentException + * if the node item is not valid for validation */ default IValidationResult validate( @NonNull IDefinitionNodeItem nodeItem, @@ -577,6 +581,7 @@ default IValidationResult validate( * @throws IOException * if an error occurred while reading the target * @throws ConstraintValidationException + * if a constraint violation prevents validation from completing */ default IValidationResult validate( @NonNull URI target, @@ -605,6 +610,7 @@ default IValidationResult validate( * @throws IOException * if an error occurred while parsing the target * @throws ConstraintValidationException + * if a constraint violation prevents validation from completing */ default IValidationResult validateWithConstraints( @NonNull URI target, diff --git a/databind/src/main/java/gov/nist/secauto/metaschema/databind/codegen/IGeneratedDefinitionClass.java b/databind/src/main/java/gov/nist/secauto/metaschema/databind/codegen/IGeneratedDefinitionClass.java index 744578de4..4af52f9cc 100644 --- a/databind/src/main/java/gov/nist/secauto/metaschema/databind/codegen/IGeneratedDefinitionClass.java +++ b/databind/src/main/java/gov/nist/secauto/metaschema/databind/codegen/IGeneratedDefinitionClass.java @@ -9,6 +9,9 @@ import edu.umd.cs.findbugs.annotations.NonNull; +/** + * Represents a generated Java class for a Metaschema definition. + */ public interface IGeneratedDefinitionClass extends IGeneratedClass { /** diff --git a/databind/src/main/java/gov/nist/secauto/metaschema/databind/codegen/config/DefaultBindingConfiguration.java b/databind/src/main/java/gov/nist/secauto/metaschema/databind/codegen/config/DefaultBindingConfiguration.java index 83e550994..a11d0e211 100644 --- a/databind/src/main/java/gov/nist/secauto/metaschema/databind/codegen/config/DefaultBindingConfiguration.java +++ b/databind/src/main/java/gov/nist/secauto/metaschema/databind/codegen/config/DefaultBindingConfiguration.java @@ -39,6 +39,14 @@ import edu.umd.cs.findbugs.annotations.NonNull; import edu.umd.cs.findbugs.annotations.Nullable; +/** + * Default implementation of {@link IBindingConfiguration} that provides binding + * configuration for Java class generation from Metaschema modules. + *

+ * This implementation supports loading configuration from XML files and + * provides namespace-to-package mappings and definition-specific binding + * configurations. + */ public class DefaultBindingConfiguration implements IBindingConfiguration { private static final Logger LOGGER = LogManager.getLogger(DefaultBindingConfiguration.class); @@ -659,6 +667,12 @@ private static IMutableDefinitionBindingConfiguration processDefinitionBindingCo return config; } + /** + * Holds binding configurations for a specific Metaschema module. + *

+ * This class maintains mappings from definition names to their binding + * configurations for both assembly and field definitions. + */ public static final class MetaschemaBindingConfiguration { private final Map assemblyBindingConfigs = new ConcurrentHashMap<>(); private final Map fieldBindingConfigs = new ConcurrentHashMap<>(); diff --git a/databind/src/main/java/gov/nist/secauto/metaschema/databind/codegen/config/DefaultDefinitionBindingConfiguration.java b/databind/src/main/java/gov/nist/secauto/metaschema/databind/codegen/config/DefaultDefinitionBindingConfiguration.java index 95de77a0d..33b0de194 100644 --- a/databind/src/main/java/gov/nist/secauto/metaschema/databind/codegen/config/DefaultDefinitionBindingConfiguration.java +++ b/databind/src/main/java/gov/nist/secauto/metaschema/databind/codegen/config/DefaultDefinitionBindingConfiguration.java @@ -15,6 +15,10 @@ import edu.umd.cs.findbugs.annotations.NonNull; import edu.umd.cs.findbugs.annotations.Nullable; +/** + * Default implementation of {@link IMutableDefinitionBindingConfiguration} that + * provides mutable binding configuration for a specific Metaschema definition. + */ public class DefaultDefinitionBindingConfiguration implements IMutableDefinitionBindingConfiguration { @Nullable private String className; diff --git a/databind/src/main/java/gov/nist/secauto/metaschema/databind/codegen/config/IBindingConfiguration.java b/databind/src/main/java/gov/nist/secauto/metaschema/databind/codegen/config/IBindingConfiguration.java index 791842aba..1a20f58c9 100644 --- a/databind/src/main/java/gov/nist/secauto/metaschema/databind/codegen/config/IBindingConfiguration.java +++ b/databind/src/main/java/gov/nist/secauto/metaschema/databind/codegen/config/IBindingConfiguration.java @@ -13,6 +13,14 @@ import edu.umd.cs.findbugs.annotations.NonNull; import edu.umd.cs.findbugs.annotations.Nullable; +/** + * Provides configuration for Java class binding generation from Metaschema + * modules. + *

+ * This interface defines how Metaschema module elements are mapped to Java + * classes, including package names, class names, base classes, and + * superinterfaces. + */ public interface IBindingConfiguration { /** diff --git a/databind/src/main/java/gov/nist/secauto/metaschema/databind/codegen/config/IDefinitionBindingConfiguration.java b/databind/src/main/java/gov/nist/secauto/metaschema/databind/codegen/config/IDefinitionBindingConfiguration.java index b8b59229f..506218e4b 100644 --- a/databind/src/main/java/gov/nist/secauto/metaschema/databind/codegen/config/IDefinitionBindingConfiguration.java +++ b/databind/src/main/java/gov/nist/secauto/metaschema/databind/codegen/config/IDefinitionBindingConfiguration.java @@ -11,6 +11,13 @@ import edu.umd.cs.findbugs.annotations.NonNull; import edu.umd.cs.findbugs.annotations.Nullable; +/** + * Provides binding configuration for a specific Metaschema definition. + *

+ * This interface defines how an individual field or assembly definition is + * mapped to a generated Java class, including the class name, base class, and + * interfaces to implement. + */ public interface IDefinitionBindingConfiguration { /** * Get the class name to use for the generated class associated with this diff --git a/databind/src/main/java/gov/nist/secauto/metaschema/databind/codegen/typeinfo/DefaultMetaschemaClassFactory.java b/databind/src/main/java/gov/nist/secauto/metaschema/databind/codegen/typeinfo/DefaultMetaschemaClassFactory.java index 24f2ca8c2..1919a6b1c 100644 --- a/databind/src/main/java/gov/nist/secauto/metaschema/databind/codegen/typeinfo/DefaultMetaschemaClassFactory.java +++ b/databind/src/main/java/gov/nist/secauto/metaschema/databind/codegen/typeinfo/DefaultMetaschemaClassFactory.java @@ -312,7 +312,7 @@ public IGeneratedClass generatePackageInfoClass( writer.format(" * version %s%n", module.getVersion()); MarkupMultiline remarks = module.getRemarks(); if (remarks != null) { - writer.format(" *

%n"); + // Remarks already include proper HTML formatting writer.format(" * %s%n", remarks.toHtml()); } } @@ -691,9 +691,19 @@ protected Set buildClass( protected Set buildClass( @NonNull IModelDefinitionTypeInfo typeInfo, @NonNull TypeSpec.Builder builder) { - MarkupLine description = typeInfo.getDefinition().getDescription(); + IModelDefinition definition = typeInfo.getDefinition(); + MarkupLine description = definition.getDescription(); if (description != null) { builder.addJavadoc(description.toHtml()); + } else { + // Fallback to formal-name or definition name when description is missing + String formalName = definition.getEffectiveFormalName(); + if (formalName != null) { + builder.addJavadoc("$L.", formalName); + } else { + // Last resort: use the definition name + builder.addJavadoc("A binding class for the {@code $L} definition.", definition.getName()); + } } Set additionalChildClasses = new LinkedHashSet<>(); diff --git a/databind/src/main/java/gov/nist/secauto/metaschema/databind/codegen/typeinfo/FieldValueTypeInfoImpl.java b/databind/src/main/java/gov/nist/secauto/metaschema/databind/codegen/typeinfo/FieldValueTypeInfoImpl.java index 9f989af45..d69c85be2 100644 --- a/databind/src/main/java/gov/nist/secauto/metaschema/databind/codegen/typeinfo/FieldValueTypeInfoImpl.java +++ b/databind/src/main/java/gov/nist/secauto/metaschema/databind/codegen/typeinfo/FieldValueTypeInfoImpl.java @@ -8,6 +8,7 @@ import com.squareup.javapoet.AnnotationSpec; import com.squareup.javapoet.ClassName; import com.squareup.javapoet.FieldSpec; +import com.squareup.javapoet.MethodSpec; import com.squareup.javapoet.TypeName; import com.squareup.javapoet.TypeSpec; @@ -72,4 +73,19 @@ protected Set buildField( fieldBuilder.addAnnotation(fieldValue.build()); return retval; } + + @Override + public void buildFieldJavadoc(@NonNull FieldSpec.Builder builder) { + builder.addJavadoc("The field value."); + } + + @Override + public void buildGetterJavadoc(@NonNull MethodSpec.Builder builder) { + builder.addJavadoc("Get the field value.\n\n@return the value"); + } + + @Override + public void buildSetterJavadoc(@NonNull MethodSpec.Builder builder, @NonNull String paramName) { + builder.addJavadoc("Set the field value.\n\n@param $L\n the value to set", paramName); + } } diff --git a/databind/src/main/java/gov/nist/secauto/metaschema/databind/config/binding/MetaschemaBindings.java b/databind/src/main/java/gov/nist/secauto/metaschema/databind/config/binding/MetaschemaBindings.java index 8f8038cac..5297496b2 100644 --- a/databind/src/main/java/gov/nist/secauto/metaschema/databind/config/binding/MetaschemaBindings.java +++ b/databind/src/main/java/gov/nist/secauto/metaschema/databind/config/binding/MetaschemaBindings.java @@ -1481,6 +1481,9 @@ public static class ItemType implements IBoundObject { typeAdapter = BooleanAdapter.class) private Boolean _useWildcard; + /** + * The field value. + */ @BoundFieldValue( valueKeyName = "STRVALUE", typeAdapter = TokenAdapter.class) @@ -1540,11 +1543,22 @@ public void setUseWildcard(@Nullable Boolean value) { _useWildcard = value; } + /** + * Get the field value. + * + * @return the value + */ @Nullable public String getValue() { return _value; } + /** + * Set the field value. + * + * @param value + * the value to set + */ public void setValue(@Nullable String value) { _value = value; } diff --git a/databind/src/main/java/gov/nist/secauto/metaschema/databind/config/binding/package-info.java b/databind/src/main/java/gov/nist/secauto/metaschema/databind/config/binding/package-info.java index 60531416f..a953f7512 100644 --- a/databind/src/main/java/gov/nist/secauto/metaschema/databind/config/binding/package-info.java +++ b/databind/src/main/java/gov/nist/secauto/metaschema/databind/config/binding/package-info.java @@ -10,7 +10,6 @@ *

* version 1.0.0 *

- *

* This module defines the binding configuration format used to customize Java * code generation from Metaschema modules. It allows specifying package names, * class names, interface implementations, base classes, and collection types diff --git a/databind/src/main/java/gov/nist/secauto/metaschema/databind/io/FormatDetector.java b/databind/src/main/java/gov/nist/secauto/metaschema/databind/io/FormatDetector.java index 424b749bb..e2da4dc91 100644 --- a/databind/src/main/java/gov/nist/secauto/metaschema/databind/io/FormatDetector.java +++ b/databind/src/main/java/gov/nist/secauto/metaschema/databind/io/FormatDetector.java @@ -119,6 +119,10 @@ public Result detect(@NonNull InputStream inputStream) throws IOException { } } + /** + * Represents the result of format detection, providing access to the detected + * format and the data stream for further processing. + */ public static final class Result { @NonNull private final DataFormatMatcher matcher; diff --git a/databind/src/main/java/gov/nist/secauto/metaschema/databind/io/IWritingContext.java b/databind/src/main/java/gov/nist/secauto/metaschema/databind/io/IWritingContext.java index 7f4084367..7e24c215a 100644 --- a/databind/src/main/java/gov/nist/secauto/metaschema/databind/io/IWritingContext.java +++ b/databind/src/main/java/gov/nist/secauto/metaschema/databind/io/IWritingContext.java @@ -13,6 +13,12 @@ import edu.umd.cs.findbugs.annotations.NonNull; +/** + * Provides the context for writing bound objects to a specific output format. + * + * @param + * the type of writer used for output + */ public interface IWritingContext { /** * Get the writer associated with the writing context. @@ -37,6 +43,12 @@ void write( @NonNull IBoundDefinitionModelComplex definition, @NonNull IBoundObject targetObject) throws IOException; + /** + * A functional interface for writing object properties. + * + * @param + * the type of handler used for property writing + */ @FunctionalInterface interface ObjectWriter { diff --git a/databind/src/main/java/gov/nist/secauto/metaschema/databind/io/xml/IXmlParsingContext.java b/databind/src/main/java/gov/nist/secauto/metaschema/databind/io/xml/IXmlParsingContext.java index 736b7fe62..e428a1b9e 100644 --- a/databind/src/main/java/gov/nist/secauto/metaschema/databind/io/xml/IXmlParsingContext.java +++ b/databind/src/main/java/gov/nist/secauto/metaschema/databind/io/xml/IXmlParsingContext.java @@ -18,6 +18,9 @@ import edu.umd.cs.findbugs.annotations.NonNull; +/** + * Provides the context for parsing XML content into bound objects. + */ public interface IXmlParsingContext extends IParsingContext { /** diff --git a/databind/src/main/java/gov/nist/secauto/metaschema/databind/io/xml/IXmlProblemHandler.java b/databind/src/main/java/gov/nist/secauto/metaschema/databind/io/xml/IXmlProblemHandler.java index 12f6bfb1d..ee93e3e8c 100644 --- a/databind/src/main/java/gov/nist/secauto/metaschema/databind/io/xml/IXmlProblemHandler.java +++ b/databind/src/main/java/gov/nist/secauto/metaschema/databind/io/xml/IXmlProblemHandler.java @@ -22,6 +22,10 @@ import edu.umd.cs.findbugs.annotations.NonNull; import edu.umd.cs.findbugs.annotations.Nullable; +/** + * Handles problems encountered during XML parsing, such as unknown attributes + * or elements. + */ @FunctionalInterface public interface IXmlProblemHandler extends IProblemHandler { /** diff --git a/databind/src/main/java/gov/nist/secauto/metaschema/databind/io/yaml/DefaultYamlDeserializer.java b/databind/src/main/java/gov/nist/secauto/metaschema/databind/io/yaml/DefaultYamlDeserializer.java index 0578ae677..9c69cf9be 100644 --- a/databind/src/main/java/gov/nist/secauto/metaschema/databind/io/yaml/DefaultYamlDeserializer.java +++ b/databind/src/main/java/gov/nist/secauto/metaschema/databind/io/yaml/DefaultYamlDeserializer.java @@ -14,6 +14,12 @@ import edu.umd.cs.findbugs.annotations.NonNull; +/** + * Deserializes YAML content into bound Java objects. + * + * @param + * the Java type of the bound object to deserialize + */ public class DefaultYamlDeserializer extends DefaultJsonDeserializer { diff --git a/databind/src/main/java/gov/nist/secauto/metaschema/databind/io/yaml/DefaultYamlSerializer.java b/databind/src/main/java/gov/nist/secauto/metaschema/databind/io/yaml/DefaultYamlSerializer.java index 84e9ee35b..756f671c3 100644 --- a/databind/src/main/java/gov/nist/secauto/metaschema/databind/io/yaml/DefaultYamlSerializer.java +++ b/databind/src/main/java/gov/nist/secauto/metaschema/databind/io/yaml/DefaultYamlSerializer.java @@ -14,6 +14,12 @@ import edu.umd.cs.findbugs.annotations.NonNull; +/** + * Serializes bound Java objects to YAML content. + * + * @param + * the Java type of the bound object to serialize + */ public class DefaultYamlSerializer extends DefaultJsonSerializer { diff --git a/databind/src/main/java/gov/nist/secauto/metaschema/databind/io/yaml/YamlOperations.java b/databind/src/main/java/gov/nist/secauto/metaschema/databind/io/yaml/YamlOperations.java index e55b7b9bf..3788006c4 100644 --- a/databind/src/main/java/gov/nist/secauto/metaschema/databind/io/yaml/YamlOperations.java +++ b/databind/src/main/java/gov/nist/secauto/metaschema/databind/io/yaml/YamlOperations.java @@ -24,6 +24,9 @@ import edu.umd.cs.findbugs.annotations.NonNull; +/** + * Utility methods for YAML parsing and conversion operations. + */ public final class YamlOperations { /** * Thread-local Yaml parser to ensure thread safety. SnakeYAML's Yaml class is diff --git a/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/IBoundInstanceModelFieldComplex.java b/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/IBoundInstanceModelFieldComplex.java index 74d99734a..3e6b73456 100644 --- a/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/IBoundInstanceModelFieldComplex.java +++ b/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/IBoundInstanceModelFieldComplex.java @@ -14,6 +14,10 @@ import java.io.IOException; +/** + * Represents a bound field instance that contains complex (non-scalar) data, + * such as an object with flags and a value. + */ public interface IBoundInstanceModelFieldComplex extends IBoundInstanceModelField, IFeatureComplexItemValueHandler { diff --git a/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/IBoundInstanceModelFieldScalar.java b/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/IBoundInstanceModelFieldScalar.java index e266e2b6f..4b87c5087 100644 --- a/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/IBoundInstanceModelFieldScalar.java +++ b/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/IBoundInstanceModelFieldScalar.java @@ -16,6 +16,10 @@ import java.io.IOException; +/** + * Represents a bound field instance that contains scalar (simple) data, such as + * a string or number value. + */ public interface IBoundInstanceModelFieldScalar extends IBoundInstanceModelField, IBoundDefinitionModelField, IFeatureScalarItemValueHandler, diff --git a/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/IBoundInstanceModelNamed.java b/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/IBoundInstanceModelNamed.java index c2a777137..0e9551710 100644 --- a/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/IBoundInstanceModelNamed.java +++ b/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/IBoundInstanceModelNamed.java @@ -14,6 +14,13 @@ import edu.umd.cs.findbugs.annotations.NonNull; import edu.umd.cs.findbugs.annotations.Nullable; +/** + * Represents a bound model instance that is named and can be addressed by that + * name in the Metaschema model. + * + * @param + * the Java type of the bound item + */ public interface IBoundInstanceModelNamed extends IBoundInstanceModel, INamedModelInstanceAbsolute { diff --git a/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/IBoundModule.java b/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/IBoundModule.java index 60965e897..f4c282ff9 100644 --- a/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/IBoundModule.java +++ b/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/IBoundModule.java @@ -17,6 +17,10 @@ import edu.umd.cs.findbugs.annotations.NonNull; +/** + * Represents a bound Metaschema module that provides access to its field and + * assembly definitions through Java class bindings. + */ public interface IBoundModule extends IModuleExtended< IBoundModule, diff --git a/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/IFeatureJavaField.java b/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/IFeatureJavaField.java index c4b1cbe06..31da6a61b 100644 --- a/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/IFeatureJavaField.java +++ b/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/IFeatureJavaField.java @@ -10,6 +10,9 @@ import edu.umd.cs.findbugs.annotations.NonNull; +/** + * Provides access to a Java field that is bound to a Metaschema instance. + */ @FunctionalInterface public interface IFeatureJavaField extends IValuedMutable { diff --git a/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/IGroupAs.java b/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/IGroupAs.java index 3d85e8b68..88c3a9ea6 100644 --- a/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/IGroupAs.java +++ b/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/IGroupAs.java @@ -16,6 +16,10 @@ * A data object to record the group as selections. */ public interface IGroupAs { + /** + * A singleton instance representing a group-as for non-grouped (singleton) + * items. + */ @NonNull IGroupAs SINGLETON_GROUP_AS = new IGroupAs() { @Override diff --git a/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/IValuedMutable.java b/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/IValuedMutable.java index 712bd0055..93b473c19 100644 --- a/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/IValuedMutable.java +++ b/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/IValuedMutable.java @@ -12,6 +12,10 @@ import edu.umd.cs.findbugs.annotations.NonNull; +/** + * Extends {@link IValued} to provide the ability to set a value on a parent + * object. + */ @FunctionalInterface public interface IValuedMutable extends IValued { /** diff --git a/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/annotations/AssemblyConstraints.java b/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/annotations/AssemblyConstraints.java index 6763d7232..631e4fc9b 100644 --- a/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/annotations/AssemblyConstraints.java +++ b/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/annotations/AssemblyConstraints.java @@ -14,6 +14,9 @@ import edu.umd.cs.findbugs.annotations.NonNull; +/** + * Defines constraints that apply to assembly definitions. + */ @Documented @Retention(RUNTIME) @Target(ElementType.ANNOTATION_TYPE) diff --git a/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/annotations/GroupAs.java b/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/annotations/GroupAs.java index 6d3e2c912..9b14c10f7 100644 --- a/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/annotations/GroupAs.java +++ b/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/annotations/GroupAs.java @@ -17,6 +17,9 @@ import edu.umd.cs.findbugs.annotations.NonNull; +/** + * Defines how a collection of model instances should be grouped. + */ @Documented @Retention(RUNTIME) @Target(ElementType.ANNOTATION_TYPE) diff --git a/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/annotations/MetaschemaModule.java b/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/annotations/MetaschemaModule.java index 9b88dde5a..0a50ed4c5 100644 --- a/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/annotations/MetaschemaModule.java +++ b/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/annotations/MetaschemaModule.java @@ -16,6 +16,9 @@ import edu.umd.cs.findbugs.annotations.NonNull; +/** + * Marks a class as a Metaschema module definition. + */ @Retention(RUNTIME) @Target(ElementType.TYPE) public @interface MetaschemaModule { diff --git a/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/annotations/MetaschemaPackage.java b/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/annotations/MetaschemaPackage.java index 858ab16f9..6bc82b663 100644 --- a/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/annotations/MetaschemaPackage.java +++ b/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/annotations/MetaschemaPackage.java @@ -14,6 +14,9 @@ import java.lang.annotation.Retention; import java.lang.annotation.Target; +/** + * Associates Metaschema module classes with a package. + */ @Retention(RUNTIME) @Target(PACKAGE) public @interface MetaschemaPackage { diff --git a/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/annotations/ModelUtil.java b/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/annotations/ModelUtil.java index 39f58f463..ca29e4340 100644 --- a/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/annotations/ModelUtil.java +++ b/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/annotations/ModelUtil.java @@ -39,7 +39,14 @@ public final class ModelUtil { // TODO: replace NO_STRING_VALUE with NULL_VALUE where possible. URIs will not // allow NULL_VALUE. + /** + * A sentinel value indicating that no string value was provided in an + * annotation. + */ public static final String NO_STRING_VALUE = "##none"; + /** + * A sentinel value indicating that the default string value should be used. + */ public static final String DEFAULT_STRING_VALUE = "##default"; /** * A placeholder for a {@code null} value for use in annotations, which cannot diff --git a/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/annotations/NsBinding.java b/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/annotations/NsBinding.java index 4d8dafd7c..92b013ab7 100644 --- a/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/annotations/NsBinding.java +++ b/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/annotations/NsBinding.java @@ -13,6 +13,9 @@ import edu.umd.cs.findbugs.annotations.NonNull; +/** + * Defines a namespace prefix binding for Metapath expressions. + */ @Retention(RUNTIME) @Target(ANNOTATION_TYPE) public @interface NsBinding { diff --git a/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/annotations/NullJavaTypeAdapter.java b/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/annotations/NullJavaTypeAdapter.java index 3238e036f..4d2083eba 100644 --- a/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/annotations/NullJavaTypeAdapter.java +++ b/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/annotations/NullJavaTypeAdapter.java @@ -63,6 +63,10 @@ public List getNames() { throw new UnsupportedOperationException(NOT_VALID); } + /** + * A placeholder atomic item type that throws unsupported operation exceptions + * for all operations. + */ protected static class VoidItem implements IAnyAtomicItem { private static VoidItem cast(@SuppressWarnings("unused") @NonNull IAnyAtomicItem item) { diff --git a/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/annotations/Property.java b/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/annotations/Property.java index 3357037d7..a43c65d10 100644 --- a/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/annotations/Property.java +++ b/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/annotations/Property.java @@ -15,6 +15,9 @@ import edu.umd.cs.findbugs.annotations.NonNull; +/** + * Defines a name-value property for a Metaschema definition or instance. + */ @Retention(RUNTIME) @Target(ANNOTATION_TYPE) public @interface Property { diff --git a/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/annotations/ValueConstraints.java b/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/annotations/ValueConstraints.java index 94b497aef..a01fab3a6 100644 --- a/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/annotations/ValueConstraints.java +++ b/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/annotations/ValueConstraints.java @@ -14,6 +14,9 @@ import edu.umd.cs.findbugs.annotations.NonNull; +/** + * Defines value-level constraints for field and flag definitions. + */ @Documented @Retention(RUNTIME) @Target(ElementType.ANNOTATION_TYPE) diff --git a/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/annotations/XmlNsForm.java b/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/annotations/XmlNsForm.java index 2c183bd94..e35c1b827 100644 --- a/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/annotations/XmlNsForm.java +++ b/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/annotations/XmlNsForm.java @@ -5,8 +5,20 @@ package gov.nist.secauto.metaschema.databind.model.annotations; +/** + * Specifies the namespace qualification behavior for XML elements. + */ public enum XmlNsForm { + /** + * Elements are not namespace-qualified. + */ UNQUALIFIED, + /** + * Elements are namespace-qualified. + */ QUALIFIED, + /** + * The namespace form uses the default behavior. + */ UNSET; } diff --git a/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/info/package-info.java b/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/info/package-info.java index 48dd45b6f..82c47a630 100644 --- a/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/info/package-info.java +++ b/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/info/package-info.java @@ -3,4 +3,8 @@ * SPDX-License-Identifier: CC0-1.0 */ +/** + * Provides classes for model property information and data item handling. + */ + package gov.nist.secauto.metaschema.databind.model.info; diff --git a/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/Any.java b/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/Any.java index 6624bf81e..f27405d49 100644 --- a/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/Any.java +++ b/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/Any.java @@ -14,6 +14,9 @@ import org.apache.commons.lang3.builder.ReflectionToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; +/** + * Any Additional Content. + */ @MetaschemaAssembly( formalName = "Any Additional Content", name = "any", diff --git a/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/AssemblyConstraints.java b/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/AssemblyConstraints.java index 3fe3e5567..e6f1082f2 100644 --- a/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/AssemblyConstraints.java +++ b/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/AssemblyConstraints.java @@ -23,6 +23,9 @@ import org.apache.commons.lang3.builder.ReflectionToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; +/** + * A binding class for the {@code assembly-constraints} definition. + */ @MetaschemaAssembly( name = "assembly-constraints", moduleClass = MetaschemaModelModule.class) diff --git a/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/AssemblyModel.java b/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/AssemblyModel.java index 0c9a0b107..8ca879fdc 100644 --- a/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/AssemblyModel.java +++ b/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/AssemblyModel.java @@ -38,6 +38,9 @@ import org.apache.commons.lang3.builder.ReflectionToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; +/** + * A binding class for the {@code assembly-model} definition. + */ @MetaschemaAssembly( name = "assembly-model", moduleClass = MetaschemaModelModule.class) @@ -140,6 +143,9 @@ public String toString() { return ObjectUtils.notNull(new ReflectionToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE).toString()); } + /** + * Choice. + */ @MetaschemaAssembly( formalName = "Choice", name = "choice", @@ -243,6 +249,9 @@ public String toString() { } } + /** + * Choice Grouping. + */ @MetaschemaAssembly( formalName = "Choice Grouping", name = "choice-group", @@ -508,6 +517,9 @@ public String toString() { return ObjectUtils.notNull(new ReflectionToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE).toString()); } + /** + * Grouping Assembly Reference. + */ @MetaschemaAssembly( formalName = "Grouping Assembly Reference", name = "assembly", @@ -858,6 +870,9 @@ public String toString() { } } + /** + * Inline Assembly Definition. + */ @MetaschemaAssembly( formalName = "Inline Assembly Definition", name = "define-assembly", @@ -1313,6 +1328,9 @@ public String toString() { } } + /** + * Grouping Field Reference. + */ @MetaschemaAssembly( formalName = "Grouping Field Reference", name = "field", @@ -1723,6 +1741,9 @@ public String toString() { } } + /** + * Inline Field Definition. + */ @MetaschemaAssembly( formalName = "Inline Field Definition", name = "define-field", diff --git a/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/AssemblyReference.java b/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/AssemblyReference.java index 564ca5db6..16affc73b 100644 --- a/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/AssemblyReference.java +++ b/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/AssemblyReference.java @@ -33,6 +33,9 @@ import org.apache.commons.lang3.builder.ReflectionToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; +/** + * Assembly Reference. + */ @MetaschemaAssembly( formalName = "Assembly Reference", name = "assembly-reference", diff --git a/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/ConstraintLetExpression.java b/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/ConstraintLetExpression.java index d1c9f4275..9eef19feb 100644 --- a/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/ConstraintLetExpression.java +++ b/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/ConstraintLetExpression.java @@ -20,6 +20,9 @@ import org.apache.commons.lang3.builder.ReflectionToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; +/** + * Constraint Let Expression. + */ @MetaschemaAssembly( formalName = "Constraint Let Expression", name = "constraint-let-expression", diff --git a/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/ConstraintValueEnum.java b/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/ConstraintValueEnum.java index bdd15c699..0f1bceb4c 100644 --- a/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/ConstraintValueEnum.java +++ b/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/ConstraintValueEnum.java @@ -22,6 +22,9 @@ import org.apache.commons.lang3.builder.ReflectionToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; +/** + * Allowed Value Enumeration. + */ @MetaschemaField( formalName = "Allowed Value Enumeration", name = "constraint-value-enum", @@ -44,6 +47,9 @@ public class ConstraintValueEnum typeAdapter = StringAdapter.class) private String _deprecated; + /** + * The field value. + */ @BoundFieldValue( valueKeyName = "remark", typeAdapter = MarkupLineAdapter.class) @@ -117,12 +123,23 @@ public void setDeprecated(@Nullable String value) { _deprecated = value; } + /** + * Get the field value. + * + * @return the value + */ @Nullable @Override public MarkupLine getRemark() { return _remark; } + /** + * Set the field value. + * + * @param value + * the value to set + */ public void setRemark(@Nullable MarkupLine value) { _remark = value; } diff --git a/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/Example.java b/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/Example.java index da9134b9b..0d45dab8c 100644 --- a/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/Example.java +++ b/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/Example.java @@ -22,6 +22,9 @@ import org.apache.commons.lang3.builder.ReflectionToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; +/** + * Example. + */ @MetaschemaAssembly( formalName = "Example", name = "example", diff --git a/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/FieldConstraints.java b/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/FieldConstraints.java index cb754e2c1..7cd2993cd 100644 --- a/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/FieldConstraints.java +++ b/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/FieldConstraints.java @@ -23,6 +23,9 @@ import org.apache.commons.lang3.builder.ReflectionToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; +/** + * A binding class for the {@code field-constraints} definition. + */ @MetaschemaAssembly( name = "field-constraints", moduleClass = MetaschemaModelModule.class) diff --git a/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/FieldReference.java b/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/FieldReference.java index 2240dfe5b..15d4b39f9 100644 --- a/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/FieldReference.java +++ b/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/FieldReference.java @@ -35,6 +35,9 @@ import org.apache.commons.lang3.builder.ReflectionToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; +/** + * Field Reference. + */ @MetaschemaAssembly( formalName = "Field Reference", name = "field-reference", diff --git a/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/FlagAllowedValues.java b/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/FlagAllowedValues.java index 695b9fc87..1e9adff01 100644 --- a/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/FlagAllowedValues.java +++ b/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/FlagAllowedValues.java @@ -32,6 +32,9 @@ import org.apache.commons.lang3.builder.ReflectionToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; +/** + * Allowed Values Constraint. + */ @MetaschemaAssembly( formalName = "Allowed Values Constraint", name = "flag-allowed-values", diff --git a/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/FlagConstraints.java b/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/FlagConstraints.java index 2b093f54e..c83b58a14 100644 --- a/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/FlagConstraints.java +++ b/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/FlagConstraints.java @@ -23,6 +23,9 @@ import org.apache.commons.lang3.builder.ReflectionToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; +/** + * A binding class for the {@code flag-constraints} definition. + */ @MetaschemaAssembly( name = "flag-constraints", moduleClass = MetaschemaModelModule.class) diff --git a/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/FlagExpect.java b/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/FlagExpect.java index 38ced5516..33ce4dc86 100644 --- a/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/FlagExpect.java +++ b/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/FlagExpect.java @@ -32,6 +32,9 @@ import org.apache.commons.lang3.builder.ReflectionToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; +/** + * Expect Condition Constraint. + */ @MetaschemaAssembly( formalName = "Expect Condition Constraint", name = "flag-expect", diff --git a/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/FlagIndexHasKey.java b/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/FlagIndexHasKey.java index 4c6abde9b..3ea873e00 100644 --- a/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/FlagIndexHasKey.java +++ b/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/FlagIndexHasKey.java @@ -32,6 +32,9 @@ import org.apache.commons.lang3.builder.ReflectionToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; +/** + * Index Has Key Constraint. + */ @MetaschemaAssembly( formalName = "Index Has Key Constraint", name = "flag-index-has-key", diff --git a/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/FlagMatches.java b/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/FlagMatches.java index 9285227ed..10ce73810 100644 --- a/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/FlagMatches.java +++ b/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/FlagMatches.java @@ -32,6 +32,9 @@ import org.apache.commons.lang3.builder.ReflectionToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; +/** + * Value Matches Constraint. + */ @MetaschemaAssembly( formalName = "Value Matches Constraint", name = "flag-matches", diff --git a/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/FlagReference.java b/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/FlagReference.java index c0d3f4b2b..a6a46117f 100644 --- a/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/FlagReference.java +++ b/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/FlagReference.java @@ -33,6 +33,9 @@ import org.apache.commons.lang3.builder.ReflectionToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; +/** + * Flag Reference. + */ @MetaschemaAssembly( formalName = "Flag Reference", name = "flag-reference", diff --git a/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/FlagReport.java b/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/FlagReport.java index 37fabfbad..1d19041ae 100644 --- a/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/FlagReport.java +++ b/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/FlagReport.java @@ -32,6 +32,9 @@ import org.apache.commons.lang3.builder.ReflectionToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; +/** + * Report Condition Constraint. + */ @MetaschemaAssembly( formalName = "Report Condition Constraint", name = "flag-report", diff --git a/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/GroupingAs.java b/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/GroupingAs.java index 5d538fe44..1b848bb97 100644 --- a/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/GroupingAs.java +++ b/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/GroupingAs.java @@ -22,6 +22,9 @@ import org.apache.commons.lang3.builder.ReflectionToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; +/** + * Group As. + */ @MetaschemaAssembly( formalName = "Group As", name = "group-as", diff --git a/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/InlineDefineAssembly.java b/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/InlineDefineAssembly.java index e7143acd3..b80dbf698 100644 --- a/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/InlineDefineAssembly.java +++ b/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/InlineDefineAssembly.java @@ -35,6 +35,9 @@ import org.apache.commons.lang3.builder.ReflectionToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; +/** + * Inline Assembly Definition. + */ @MetaschemaAssembly( formalName = "Inline Assembly Definition", name = "inline-define-assembly", diff --git a/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/InlineDefineField.java b/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/InlineDefineField.java index a8e04659a..44ea05acb 100644 --- a/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/InlineDefineField.java +++ b/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/InlineDefineField.java @@ -38,6 +38,9 @@ import org.apache.commons.lang3.builder.ReflectionToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; +/** + * Inline Field Definition. + */ @MetaschemaAssembly( formalName = "Inline Field Definition", name = "inline-define-field", diff --git a/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/InlineDefineFlag.java b/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/InlineDefineFlag.java index e908ac3d3..eb6692587 100644 --- a/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/InlineDefineFlag.java +++ b/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/InlineDefineFlag.java @@ -33,6 +33,9 @@ import org.apache.commons.lang3.builder.ReflectionToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; +/** + * Inline Flag Definition. + */ @MetaschemaAssembly( formalName = "Inline Flag Definition", name = "inline-define-flag", diff --git a/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/JsonValueKeyFlag.java b/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/JsonValueKeyFlag.java index 01ed9312b..c9d415425 100644 --- a/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/JsonValueKeyFlag.java +++ b/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/JsonValueKeyFlag.java @@ -17,6 +17,9 @@ import org.apache.commons.lang3.builder.ReflectionToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; +/** + * Flag Used as the Field Value's JSON Property Name. + */ @MetaschemaAssembly( formalName = "Flag Used as the Field Value's JSON Property Name", name = "json-value-key-flag", diff --git a/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/KeyConstraintField.java b/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/KeyConstraintField.java index c7a1a9f2b..a0c879044 100644 --- a/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/KeyConstraintField.java +++ b/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/KeyConstraintField.java @@ -19,6 +19,9 @@ import org.apache.commons.lang3.builder.ReflectionToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; +/** + * Key Constraint. + */ @MetaschemaAssembly( formalName = "Key Constraint", name = "key-constraint-field", diff --git a/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/METASCHEMA.java b/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/METASCHEMA.java index 4fc9f84db..0b3b8afe4 100644 --- a/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/METASCHEMA.java +++ b/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/METASCHEMA.java @@ -1298,6 +1298,9 @@ public static class RootName implements IBoundObject { typeAdapter = NonNegativeIntegerAdapter.class) private BigInteger _index; + /** + * The field value. + */ @BoundFieldValue( valueKeyName = "name", typeAdapter = TokenAdapter.class) @@ -1355,11 +1358,22 @@ public void setIndex(@Nullable BigInteger value) { _index = value; } + /** + * Get the field value. + * + * @return the value + */ @Nullable public String getName() { return _name; } + /** + * Set the field value. + * + * @param value + * the value to set + */ public void setName(@Nullable String value) { _name = value; } @@ -1371,6 +1385,9 @@ public String toString() { } } + /** + * Global Field Definition. + */ @MetaschemaAssembly( formalName = "Global Field Definition", name = "define-field", @@ -2056,6 +2073,9 @@ public String toString() { } } + /** + * Global Flag Definition. + */ @MetaschemaAssembly( formalName = "Global Flag Definition", name = "define-flag", diff --git a/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/MetapathContext.java b/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/MetapathContext.java index 26ac84428..b19d4200d 100644 --- a/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/MetapathContext.java +++ b/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/MetapathContext.java @@ -22,6 +22,9 @@ import org.apache.commons.lang3.builder.ReflectionToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; +/** + * A binding class for the {@code metapath-context} definition. + */ @MetaschemaAssembly( name = "metapath-context", moduleClass = MetaschemaModelModule.class) diff --git a/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/MetaschemaMetaConstraints.java b/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/MetaschemaMetaConstraints.java index 0e3fde42f..7aa9c0cbd 100644 --- a/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/MetaschemaMetaConstraints.java +++ b/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/MetaschemaMetaConstraints.java @@ -397,6 +397,9 @@ public String toString() { } } + /** + * A binding class for the {@code definition-context} definition. + */ @MetaschemaAssembly( name = "definition-context", moduleClass = MetaschemaModelModule.class) diff --git a/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/MetaschemaModuleConstraints.java b/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/MetaschemaModuleConstraints.java index 841b61c9c..f49699c9a 100644 --- a/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/MetaschemaModuleConstraints.java +++ b/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/MetaschemaModuleConstraints.java @@ -443,6 +443,9 @@ public String toString() { } } + /** + * A binding class for the {@code scope} definition. + */ @MetaschemaAssembly( name = "scope", moduleClass = MetaschemaModelModule.class) @@ -636,6 +639,9 @@ public String toString() { return ObjectUtils.notNull(new ReflectionToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE).toString()); } + /** + * A binding class for the {@code assembly} definition. + */ @MetaschemaAssembly( name = "assembly", moduleClass = MetaschemaModelModule.class) @@ -755,6 +761,9 @@ public String toString() { } } + /** + * A binding class for the {@code field} definition. + */ @MetaschemaAssembly( name = "field", moduleClass = MetaschemaModelModule.class) @@ -868,6 +877,9 @@ public String toString() { } } + /** + * A binding class for the {@code flag} definition. + */ @MetaschemaAssembly( name = "flag", moduleClass = MetaschemaModelModule.class) diff --git a/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/Property.java b/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/Property.java index 96028e0f2..84daeddb5 100644 --- a/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/Property.java +++ b/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/Property.java @@ -21,6 +21,9 @@ import org.apache.commons.lang3.builder.ReflectionToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; +/** + * Property. + */ @MetaschemaAssembly( formalName = "Property", name = "property", diff --git a/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/Remarks.java b/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/Remarks.java index 991b27f41..320c8ad88 100644 --- a/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/Remarks.java +++ b/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/Remarks.java @@ -52,6 +52,9 @@ public class Remarks implements IBoundObject { @AllowedValue(value = "ALL", description = "The remark applies to all representations.") }))) private String _clazz; + /** + * The field value. + */ @BoundFieldValue( valueKeyName = "remark", typeAdapter = MarkupMultilineAdapter.class) @@ -111,11 +114,22 @@ public void setClazz(@Nullable String value) { _clazz = value; } + /** + * Get the field value. + * + * @return the value + */ @Nullable public MarkupMultiline getRemark() { return _remark; } + /** + * Set the field value. + * + * @param value + * the value to set + */ public void setRemark(@Nullable MarkupMultiline value) { _remark = value; } diff --git a/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/TargetedAllowedValuesConstraint.java b/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/TargetedAllowedValuesConstraint.java index 63aa6a4db..5ef696da2 100644 --- a/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/TargetedAllowedValuesConstraint.java +++ b/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/TargetedAllowedValuesConstraint.java @@ -32,6 +32,9 @@ import org.apache.commons.lang3.builder.ReflectionToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; +/** + * Allowed Values Constraint. + */ @MetaschemaAssembly( formalName = "Allowed Values Constraint", name = "targeted-allowed-values-constraint", diff --git a/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/TargetedExpectConstraint.java b/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/TargetedExpectConstraint.java index eac529145..f6c96aa2a 100644 --- a/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/TargetedExpectConstraint.java +++ b/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/TargetedExpectConstraint.java @@ -33,6 +33,9 @@ import org.apache.commons.lang3.builder.ReflectionToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; +/** + * Expect Condition Constraint. + */ @MetaschemaAssembly( formalName = "Expect Condition Constraint", name = "targeted-expect-constraint", diff --git a/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/TargetedHasCardinalityConstraint.java b/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/TargetedHasCardinalityConstraint.java index d41c1a112..c74bb728d 100644 --- a/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/TargetedHasCardinalityConstraint.java +++ b/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/TargetedHasCardinalityConstraint.java @@ -36,6 +36,9 @@ import org.apache.commons.lang3.builder.ReflectionToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; +/** + * Targeted Cardinality Constraint. + */ @MetaschemaAssembly( formalName = "Targeted Cardinality Constraint", name = "targeted-has-cardinality-constraint", diff --git a/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/TargetedIndexConstraint.java b/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/TargetedIndexConstraint.java index c2cb6db22..a90245815 100644 --- a/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/TargetedIndexConstraint.java +++ b/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/TargetedIndexConstraint.java @@ -33,6 +33,9 @@ import org.apache.commons.lang3.builder.ReflectionToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; +/** + * Targeted Index Constraint. + */ @MetaschemaAssembly( formalName = "Targeted Index Constraint", name = "targeted-index-constraint", diff --git a/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/TargetedIndexHasKeyConstraint.java b/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/TargetedIndexHasKeyConstraint.java index a49da6303..ecc094eef 100644 --- a/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/TargetedIndexHasKeyConstraint.java +++ b/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/TargetedIndexHasKeyConstraint.java @@ -33,6 +33,9 @@ import org.apache.commons.lang3.builder.ReflectionToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; +/** + * Targeted Index Has Key Constraint. + */ @MetaschemaAssembly( formalName = "Targeted Index Has Key Constraint", name = "targeted-index-has-key-constraint", diff --git a/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/TargetedIsUniqueConstraint.java b/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/TargetedIsUniqueConstraint.java index 60100e75f..0ac5702f0 100644 --- a/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/TargetedIsUniqueConstraint.java +++ b/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/TargetedIsUniqueConstraint.java @@ -33,6 +33,9 @@ import org.apache.commons.lang3.builder.ReflectionToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; +/** + * Targeted Unique Constraint. + */ @MetaschemaAssembly( formalName = "Targeted Unique Constraint", name = "targeted-is-unique-constraint", diff --git a/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/TargetedMatchesConstraint.java b/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/TargetedMatchesConstraint.java index 38abd9d7f..ed6c0e77c 100644 --- a/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/TargetedMatchesConstraint.java +++ b/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/TargetedMatchesConstraint.java @@ -33,6 +33,9 @@ import org.apache.commons.lang3.builder.ReflectionToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; +/** + * Value Matches Constraint. + */ @MetaschemaAssembly( formalName = "Value Matches Constraint", name = "targeted-matches-constraint", diff --git a/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/TargetedReportConstraint.java b/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/TargetedReportConstraint.java index c6922728c..5a45d1663 100644 --- a/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/TargetedReportConstraint.java +++ b/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/TargetedReportConstraint.java @@ -33,6 +33,9 @@ import org.apache.commons.lang3.builder.ReflectionToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; +/** + * Report Condition Constraint. + */ @MetaschemaAssembly( formalName = "Report Condition Constraint", name = "targeted-report-constraint", diff --git a/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/UseName.java b/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/UseName.java index 7bf63b57d..31120a375 100644 --- a/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/UseName.java +++ b/databind/src/main/java/gov/nist/secauto/metaschema/databind/model/metaschema/binding/UseName.java @@ -41,6 +41,9 @@ public class UseName implements IBoundObject { typeAdapter = NonNegativeIntegerAdapter.class) private BigInteger _index; + /** + * The field value. + */ @BoundFieldValue( valueKeyName = "name", typeAdapter = TokenAdapter.class) @@ -98,11 +101,22 @@ public void setIndex(@Nullable BigInteger value) { _index = value; } + /** + * Get the field value. + * + * @return the value + */ @Nullable public String getName() { return _name; } + /** + * Set the field value. + * + * @param value + * the value to set + */ public void setName(@Nullable String value) { _name = value; } diff --git a/databind/src/main/java/module-info.java b/databind/src/main/java/module-info.java index c313111bc..17720a776 100644 --- a/databind/src/main/java/module-info.java +++ b/databind/src/main/java/module-info.java @@ -19,9 +19,9 @@ requires com.ctc.wstx; requires com.fasterxml.jackson.dataformat.yaml; requires com.fasterxml.jackson.dataformat.xml; - requires transitive com.squareup.javapoet; + requires com.squareup.javapoet; requires nl.talsmasoftware.lazy4j; - requires transitive org.apache.commons.lang3; + requires org.apache.commons.lang3; requires org.apache.logging.log4j; requires org.yaml.snakeyaml; diff --git a/databind/src/test/java/gov/nist/secauto/metaschema/databind/codegen/JavadocGenerationTest.java b/databind/src/test/java/gov/nist/secauto/metaschema/databind/codegen/JavadocGenerationTest.java index 08d842723..7ea79d811 100644 --- a/databind/src/test/java/gov/nist/secauto/metaschema/databind/codegen/JavadocGenerationTest.java +++ b/databind/src/test/java/gov/nist/secauto/metaschema/databind/codegen/JavadocGenerationTest.java @@ -220,4 +220,47 @@ void testRequiredFlagSetterHasNonNullParameter() throws Exception { assertTrue(nonNullSetterParam.matcher(content).find(), "Required flag setter should have @NonNull parameter. Content:\n" + content); } + + /** + * Tests that a class-level Javadoc is generated even when the metaschema + * definition only has a formal-name and no description. + * + * @throws Exception + * if generation fails + */ + @Test + void testClassHasJavadocWithOnlyFormalName() throws Exception { + Path noDescMetaschema = ObjectUtils.notNull( + Paths.get("src/test/resources/metaschema/no_description/metaschema.xml")); + String content = generateAndReadClass(noDescMetaschema, "ItemWithNameOnly"); + + // The class should have a Javadoc comment derived from the formal-name + // Pattern: /** followed by content then */ before the class declaration + Pattern classJavadoc = Pattern.compile("/\\*\\*.*?\\*/\\s*@MetaschemaAssembly", Pattern.DOTALL); + + assertTrue(classJavadoc.matcher(content).find(), + "Class with only formal-name should have class-level Javadoc. Content:\n" + content); + } + + /** + * Tests that a class-level Javadoc is generated even when the metaschema + * definition has neither formal-name nor description. + * + * @throws Exception + * if generation fails + */ + @Test + void testClassHasJavadocWithNoDocs() throws Exception { + Path noDescMetaschema = ObjectUtils.notNull( + Paths.get("src/test/resources/metaschema/no_description/metaschema.xml")); + String content = generateAndReadClass(noDescMetaschema, "ItemWithoutDocs"); + + // The class should have a Javadoc comment even without formal-name or + // description + // It should use the definition name as a fallback + Pattern classJavadoc = Pattern.compile("/\\*\\*.*?\\*/\\s*@MetaschemaAssembly", Pattern.DOTALL); + + assertTrue(classJavadoc.matcher(content).find(), + "Class without formal-name or description should still have class-level Javadoc. Content:\n" + content); + } } diff --git a/databind/src/test/java/gov/nist/secauto/metaschema/databind/io/ChoiceValidationTest.java b/databind/src/test/java/gov/nist/secauto/metaschema/databind/io/ChoiceValidationTest.java new file mode 100644 index 000000000..e757fde77 --- /dev/null +++ b/databind/src/test/java/gov/nist/secauto/metaschema/databind/io/ChoiceValidationTest.java @@ -0,0 +1,107 @@ +/* + * SPDX-FileCopyrightText: none + * SPDX-License-Identifier: CC0-1.0 + */ + +package gov.nist.secauto.metaschema.databind.io; + +import static org.junit.jupiter.api.Assertions.assertDoesNotThrow; +import static org.junit.jupiter.api.Assertions.assertNotNull; + +import gov.nist.secauto.metaschema.core.model.MetaschemaException; +import gov.nist.secauto.metaschema.core.util.ObjectUtils; +import gov.nist.secauto.metaschema.databind.IBindingContext; +import gov.nist.secauto.metaschema.databind.codegen.AbstractMetaschemaTest; + +import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.ValueSource; + +import java.io.IOException; +import java.nio.file.Path; +import java.nio.file.Paths; + +/** + * Tests for choice validation during deserialization. + *

+ * This class tests that choice elements are properly validated during + * deserialization. When a choice contains mutually exclusive alternatives, + * providing ONE alternative should satisfy the choice requirement - the other + * alternatives should NOT be flagged as missing. + *

+ * Related issues: + *

    + *
  • Issue #308 - Original choice regression
  • + *
  • Issue #613 - Choice elements incorrectly require all alternatives
  • + *
+ */ +class ChoiceValidationTest + extends AbstractMetaschemaTest { + + private static final Path METASCHEMA_PATH + = Paths.get("src/test/resources/metaschema/308-choice-regression/metaschema.xml"); + private static final Path EXAMPLE_JSON_PATH + = Paths.get("src/test/resources/metaschema/308-choice-regression/example.json"); + private static final Path EXAMPLE_XML_PATH + = Paths.get("src/test/resources/metaschema/308-choice-regression/example.xml"); + + /** + * Test that providing one choice alternative satisfies the choice requirement. + *

+ * The test metaschema defines a choice between fields x and y, both with + * min-occurs=1. The example provides only y, which should satisfy the choice. + * With required field validation enabled, this should NOT throw an error. + * + * @param formatName + * the format to test ("JSON" or "XML") + * @throws IOException + * if an I/O error occurs reading the test resources + * @throws MetaschemaException + * if metaschema processing fails + */ + @ParameterizedTest + @ValueSource(strings = { "JSON", "XML" }) + void testChoiceAlternativeSatisfiesRequirement(String formatName) throws IOException, MetaschemaException { + Format format = Format.valueOf(formatName); + Path examplePath = format == Format.JSON ? EXAMPLE_JSON_PATH : EXAMPLE_XML_PATH; + + IBindingContext bindingContext = newBindingContext(); + bindingContext.loadMetaschema(ObjectUtils.notNull(METASCHEMA_PATH)); + + IBoundLoader loader = bindingContext.newBoundLoader(); + // Enable required field validation - this is the key difference from the + // regression test. With the fix, providing one choice alternative should + // satisfy the choice requirement. + loader.enableFeature(DeserializationFeature.DESERIALIZE_VALIDATE_REQUIRED_FIELDS); + + // This should NOT throw - providing y should satisfy the choice between x and y + assertDoesNotThrow(() -> { + Object result = loader.load(ObjectUtils.notNull(examplePath)); + assertNotNull(result, format + " example should parse successfully with required field validation"); + }, "Providing one choice alternative (y) should satisfy the choice requirement - " + + "the other alternative (x) should NOT be flagged as missing"); + } + + /** + * Test that choice validation works for constraint validation as well. + * + * @throws IOException + * if an I/O error occurs reading the test resources + * @throws MetaschemaException + * if metaschema processing fails + */ + @Test + void testChoiceWithConstraintValidation() throws IOException, MetaschemaException { + IBindingContext bindingContext = newBindingContext(); + bindingContext.loadMetaschema(ObjectUtils.notNull(METASCHEMA_PATH)); + + IBoundLoader loader = bindingContext.newBoundLoader(); + loader.enableFeature(DeserializationFeature.DESERIALIZE_VALIDATE_CONSTRAINTS); + loader.enableFeature(DeserializationFeature.DESERIALIZE_VALIDATE_REQUIRED_FIELDS); + + assertDoesNotThrow(() -> { + Object result = loader.load(ObjectUtils.notNull(EXAMPLE_JSON_PATH)); + assertNotNull(result, "JSON example should parse successfully with both validations enabled"); + }); + } +} diff --git a/databind/src/test/resources/metaschema/no_description/metaschema.xml b/databind/src/test/resources/metaschema/no_description/metaschema.xml new file mode 100644 index 000000000..45d20a7af --- /dev/null +++ b/databind/src/test/resources/metaschema/no_description/metaschema.xml @@ -0,0 +1,30 @@ + + + No Description Test Module + 1.0.0 + no-desc-test + http://example.com/ns/no-description + http://example.com/ns/no-description + + + + Item With Name Only + + item-with-name-only + + Identifier + + + + + + + + + item-without-docs + + + + + + diff --git a/metaschema-cli/src/main/java/gov/nist/secauto/metaschema/cli/commands/ConvertContentUsingModuleCommand.java b/metaschema-cli/src/main/java/gov/nist/secauto/metaschema/cli/commands/ConvertContentUsingModuleCommand.java index 18ea15bd9..46888ece5 100644 --- a/metaschema-cli/src/main/java/gov/nist/secauto/metaschema/cli/commands/ConvertContentUsingModuleCommand.java +++ b/metaschema-cli/src/main/java/gov/nist/secauto/metaschema/cli/commands/ConvertContentUsingModuleCommand.java @@ -40,7 +40,7 @@ * This command implementation supports the conversion of a content instance * between supported formats based on a provided Metaschema module. */ -class ConvertContentUsingModuleCommand +public class ConvertContentUsingModuleCommand extends AbstractConvertSubcommand { @NonNull private static final String COMMAND = "convert"; diff --git a/metaschema-cli/src/main/java/gov/nist/secauto/metaschema/cli/commands/GenerateDiagramCommand.java b/metaschema-cli/src/main/java/gov/nist/secauto/metaschema/cli/commands/GenerateDiagramCommand.java index 93b8c42b7..cd5568562 100644 --- a/metaschema-cli/src/main/java/gov/nist/secauto/metaschema/cli/commands/GenerateDiagramCommand.java +++ b/metaschema-cli/src/main/java/gov/nist/secauto/metaschema/cli/commands/GenerateDiagramCommand.java @@ -41,7 +41,7 @@ * This command implementation supports generation of a diagram depicting the * objects and relationships within a provided Metaschema module. */ -class GenerateDiagramCommand +public class GenerateDiagramCommand extends AbstractTerminalCommand { private static final Logger LOGGER = LogManager.getLogger(GenerateDiagramCommand.class); diff --git a/metaschema-cli/src/main/java/gov/nist/secauto/metaschema/cli/commands/GenerateSchemaCommand.java b/metaschema-cli/src/main/java/gov/nist/secauto/metaschema/cli/commands/GenerateSchemaCommand.java index 192796751..c97513aec 100644 --- a/metaschema-cli/src/main/java/gov/nist/secauto/metaschema/cli/commands/GenerateSchemaCommand.java +++ b/metaschema-cli/src/main/java/gov/nist/secauto/metaschema/cli/commands/GenerateSchemaCommand.java @@ -44,7 +44,7 @@ * This command implementation supports generation of schemas in a variety of * formats based on a provided Metaschema module. */ -class GenerateSchemaCommand +public class GenerateSchemaCommand extends AbstractTerminalCommand { private static final Logger LOGGER = LogManager.getLogger(GenerateSchemaCommand.class); diff --git a/metaschema-cli/src/main/java/gov/nist/secauto/metaschema/cli/commands/ValidateContentUsingModuleCommand.java b/metaschema-cli/src/main/java/gov/nist/secauto/metaschema/cli/commands/ValidateContentUsingModuleCommand.java index f3c030f63..53872ec46 100644 --- a/metaschema-cli/src/main/java/gov/nist/secauto/metaschema/cli/commands/ValidateContentUsingModuleCommand.java +++ b/metaschema-cli/src/main/java/gov/nist/secauto/metaschema/cli/commands/ValidateContentUsingModuleCommand.java @@ -46,7 +46,7 @@ * This command implementation supports validation of a content instance based * on a provided Metaschema module. */ -class ValidateContentUsingModuleCommand +public class ValidateContentUsingModuleCommand extends AbstractValidateContentCommand { @NonNull private static final String COMMAND = "validate-content"; diff --git a/metaschema-cli/src/main/java/gov/nist/secauto/metaschema/cli/commands/ValidateModuleCommand.java b/metaschema-cli/src/main/java/gov/nist/secauto/metaschema/cli/commands/ValidateModuleCommand.java index 0658a5453..ae6377f9a 100644 --- a/metaschema-cli/src/main/java/gov/nist/secauto/metaschema/cli/commands/ValidateModuleCommand.java +++ b/metaschema-cli/src/main/java/gov/nist/secauto/metaschema/cli/commands/ValidateModuleCommand.java @@ -41,9 +41,9 @@ import nl.talsmasoftware.lazy4j.Lazy; /** - * This command implementation supports validation a Metaschema module. + * This command implementation supports validation of a Metaschema module. */ -class ValidateModuleCommand +public class ValidateModuleCommand extends AbstractValidateContentCommand { @NonNull private static final String COMMAND = "validate"; diff --git a/metaschema-cli/src/main/java/module-info.java b/metaschema-cli/src/main/java/module-info.java new file mode 100644 index 000000000..2e314d2be --- /dev/null +++ b/metaschema-cli/src/main/java/module-info.java @@ -0,0 +1,44 @@ +/* + * SPDX-FileCopyrightText: none + * SPDX-License-Identifier: CC0-1.0 + */ + +import gov.nist.secauto.metaschema.cli.processor.command.ICommand; + +/** + * Provides a command-line interface for Metaschema operations including schema + * generation, content validation, and Metapath evaluation. + * + * @provides ICommand for CLI command discovery + */ +module gov.nist.secauto.metaschema.cli { + // requirements + requires java.base; + + requires transitive gov.nist.secauto.metaschema.core; + requires transitive gov.nist.secauto.metaschema.databind; + requires transitive gov.nist.secauto.metaschema.schemagen; + requires transitive gov.nist.secauto.metaschema.cli.processor; + requires gov.nist.secauto.metaschema.databind.modules; + + requires static org.eclipse.jdt.annotation; + requires static com.github.spotbugs.annotations; + + requires nl.talsmasoftware.lazy4j; + requires org.apache.commons.cli; + requires org.apache.logging.log4j; + requires org.apache.logging.log4j.core; + + exports gov.nist.secauto.metaschema.cli; + exports gov.nist.secauto.metaschema.cli.commands; + exports gov.nist.secauto.metaschema.cli.commands.metapath; + exports gov.nist.secauto.metaschema.cli.util; + + provides ICommand with + gov.nist.secauto.metaschema.cli.commands.ValidateModuleCommand, + gov.nist.secauto.metaschema.cli.commands.GenerateSchemaCommand, + gov.nist.secauto.metaschema.cli.commands.GenerateDiagramCommand, + gov.nist.secauto.metaschema.cli.commands.ValidateContentUsingModuleCommand, + gov.nist.secauto.metaschema.cli.commands.ConvertContentUsingModuleCommand, + gov.nist.secauto.metaschema.cli.commands.metapath.MetapathCommand; +} diff --git a/metaschema-maven-plugin/pom.xml b/metaschema-maven-plugin/pom.xml index 59a6ee8cb..e36845c7b 100644 --- a/metaschema-maven-plugin/pom.xml +++ b/metaschema-maven-plugin/pom.xml @@ -109,6 +109,31 @@ + + org.apache.maven.plugins + maven-compiler-plugin + + + + --add-reads + gov.nist.secauto.metaschema.maven.plugin=ALL-UNNAMED + + + + + org.apache.maven.plugins + maven-javadoc-plugin + + + + --add-reads + gov.nist.secauto.metaschema.maven.plugin=ALL-UNNAMED + + + org.eclipse.m2e diff --git a/metaschema-maven-plugin/src/main/java/module-info.java b/metaschema-maven-plugin/src/main/java/module-info.java new file mode 100644 index 000000000..3a243fa3b --- /dev/null +++ b/metaschema-maven-plugin/src/main/java/module-info.java @@ -0,0 +1,27 @@ +/* + * SPDX-FileCopyrightText: none + * SPDX-License-Identifier: CC0-1.0 + */ + +/** + * Provides Maven plugin mojos for Metaschema code and schema generation. + *

+ * This module uses the Maven API at runtime via the unnamed module, as Maven's + * APIs have split package issues that prevent full JPMS compatibility. + */ +module gov.nist.secauto.metaschema.maven.plugin { + // requirements + requires java.base; + + requires transitive gov.nist.secauto.metaschema.core; + requires transitive gov.nist.secauto.metaschema.databind; + requires transitive gov.nist.secauto.metaschema.schemagen; + + requires static org.eclipse.jdt.annotation; + requires static com.github.spotbugs.annotations; + + requires org.apache.logging.log4j; + requires org.apache.logging.log4j.core; + + exports gov.nist.secauto.metaschema.maven.plugin; +} diff --git a/metaschema-testing/pom-bootstrap.xml b/metaschema-testing/pom-bootstrap.xml index 13bb135d7..b7b53c08f 100644 --- a/metaschema-testing/pom-bootstrap.xml +++ b/metaschema-testing/pom-bootstrap.xml @@ -3,7 +3,7 @@ This POM is used to regenerate the test suite binding classes. It is NOT part of the normal build due to circular dependencies. - Usage: mvn -f metaschema-testing/pom-bootstrap.xml generate-sources + Usage: mvn -f metaschema-testing/pom-bootstrap.xml process-sources This will: 1. Delete existing generated classes in the testsuite package @@ -91,7 +91,7 @@ add-license-headers - generate-sources + process-sources format @@ -114,7 +114,7 @@ format-generated-sources - generate-sources + process-sources format diff --git a/metaschema-testing/src/main/java/gov/nist/secauto/metaschema/model/testing/package-info.java b/metaschema-testing/src/main/java/gov/nist/secauto/metaschema/model/testing/package-info.java index 8e12bde0d..33d48b3e4 100644 --- a/metaschema-testing/src/main/java/gov/nist/secauto/metaschema/model/testing/package-info.java +++ b/metaschema-testing/src/main/java/gov/nist/secauto/metaschema/model/testing/package-info.java @@ -3,4 +3,8 @@ * SPDX-License-Identifier: CC0-1.0 */ +/** + * Provides testing utilities for Metaschema modules and constraints. + */ + package gov.nist.secauto.metaschema.model.testing; diff --git a/metaschema-testing/src/main/java/module-info.java b/metaschema-testing/src/main/java/module-info.java new file mode 100644 index 000000000..617994781 --- /dev/null +++ b/metaschema-testing/src/main/java/module-info.java @@ -0,0 +1,30 @@ +/* + * SPDX-FileCopyrightText: none + * SPDX-License-Identifier: CC0-1.0 + */ + +/** + * Provides unit testing support for Metaschema modules and constraints. + */ +module gov.nist.secauto.metaschema.testing { + // requirements + requires java.base; + requires java.management; + + requires transitive gov.nist.secauto.metaschema.core; + requires transitive gov.nist.secauto.metaschema.databind; + + requires static org.eclipse.jdt.annotation; + requires static com.github.spotbugs.annotations; + + requires nl.talsmasoftware.lazy4j; + requires org.apache.commons.lang3; + requires org.apache.logging.log4j; + requires transitive org.junit.jupiter.api; + + exports gov.nist.secauto.metaschema.model.testing; + exports gov.nist.secauto.metaschema.model.testing.testsuite; + + // open binding classes for reflection + opens gov.nist.secauto.metaschema.model.testing.testsuite; +} diff --git a/pom.xml b/pom.xml index aef5b6001..76a48da84 100644 --- a/pom.xml +++ b/pom.xml @@ -550,8 +550,11 @@ -J-Dfile.encoding=UTF-8 - false - false + true + true + + false @@ -707,6 +710,26 @@ org.apache.maven.plugins maven-site-plugin + + org.apache.maven.plugins + maven-javadoc-plugin + + + aggregate-javadoc + package + false + + aggregate + + + ${project.name} ${project.version} API + ${project.name} ${project.version} API + + metaschema-maven-plugin + + + + diff --git a/schemagen/src/main/java/gov/nist/secauto/metaschema/schemagen/ChoiceNotInlineStrategy.java b/schemagen/src/main/java/gov/nist/secauto/metaschema/schemagen/ChoiceNotInlineStrategy.java index 58ee2561f..b5c176492 100644 --- a/schemagen/src/main/java/gov/nist/secauto/metaschema/schemagen/ChoiceNotInlineStrategy.java +++ b/schemagen/src/main/java/gov/nist/secauto/metaschema/schemagen/ChoiceNotInlineStrategy.java @@ -8,6 +8,13 @@ import gov.nist.secauto.metaschema.core.model.IChoiceInstance; import gov.nist.secauto.metaschema.core.model.IDefinition; +/** + * An inline strategy that inlines definitions unless they are contained within + * a choice block. + *

+ * Definitions that are part of a choice block are not inlined to ensure proper + * schema generation for mutually exclusive alternatives. + */ public class ChoiceNotInlineStrategy implements IInlineStrategy { @Override public boolean isInline( diff --git a/schemagen/src/main/java/gov/nist/secauto/metaschema/schemagen/xml/impl/DomDatatypeContent.java b/schemagen/src/main/java/gov/nist/secauto/metaschema/schemagen/xml/impl/DomDatatypeContent.java index 62398b9e3..fb96b547c 100644 --- a/schemagen/src/main/java/gov/nist/secauto/metaschema/schemagen/xml/impl/DomDatatypeContent.java +++ b/schemagen/src/main/java/gov/nist/secauto/metaschema/schemagen/xml/impl/DomDatatypeContent.java @@ -13,16 +13,15 @@ import org.w3c.dom.Node; import org.w3c.dom.NodeList; -import javax.xml.parsers.DocumentBuilder; -import javax.xml.parsers.DocumentBuilderFactory; -import javax.xml.parsers.ParserConfigurationException; - import java.util.AbstractList; import java.util.ArrayList; import java.util.List; import java.util.RandomAccess; import java.util.stream.Collectors; +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; +import javax.xml.parsers.ParserConfigurationException; import javax.xml.stream.XMLStreamException; import javax.xml.stream.XMLStreamWriter; diff --git a/schemagen/src/main/java/gov/nist/secauto/metaschema/schemagen/xml/impl/IXmlGenerationState.java b/schemagen/src/main/java/gov/nist/secauto/metaschema/schemagen/xml/impl/IXmlGenerationState.java index a9adb9375..df931c880 100644 --- a/schemagen/src/main/java/gov/nist/secauto/metaschema/schemagen/xml/impl/IXmlGenerationState.java +++ b/schemagen/src/main/java/gov/nist/secauto/metaschema/schemagen/xml/impl/IXmlGenerationState.java @@ -121,6 +121,18 @@ void writeStartElement( @NonNull String localName, @NonNull String namespaceUri) throws XMLStreamException; + /** + * Writes a start element with the given namespace and local name. + * + * @param namespaceUri + * the namespace URI for the element + * @param localName + * the local name of the element + * @throws XMLStreamException + * if an error occurs while writing + */ + void writeStartElement(@NonNull String namespaceUri, @NonNull String localName) throws XMLStreamException; + /** * Writes an end element for the current element. * @@ -160,16 +172,4 @@ void writeStartElement( * if an error occurs while writing */ void writeNamespace(@NonNull String prefix, @NonNull String namespaceUri) throws XMLStreamException; - - /** - * Writes a start element with the given namespace and local name. - * - * @param namespaceUri - * the namespace URI for the element - * @param localName - * the local name of the element - * @throws XMLStreamException - * if an error occurs while writing - */ - void writeStartElement(@NonNull String namespaceUri, @NonNull String localName) throws XMLStreamException; } diff --git a/schemagen/src/test/java/gov/nist/secauto/metaschema/schemagen/AbstractSchemaGeneratorTestSuite.java b/schemagen/src/test/java/gov/nist/secauto/metaschema/schemagen/AbstractSchemaGeneratorTestSuite.java index ae6c92480..03f8a9417 100644 --- a/schemagen/src/test/java/gov/nist/secauto/metaschema/schemagen/AbstractSchemaGeneratorTestSuite.java +++ b/schemagen/src/test/java/gov/nist/secauto/metaschema/schemagen/AbstractSchemaGeneratorTestSuite.java @@ -13,10 +13,10 @@ import gov.nist.secauto.metaschema.core.configuration.IMutableConfiguration; import gov.nist.secauto.metaschema.core.model.IModule; import gov.nist.secauto.metaschema.core.model.MetaschemaException; +import gov.nist.secauto.metaschema.core.model.MetaschemaModelConstants; import gov.nist.secauto.metaschema.core.model.constraint.IConstraintSet; import gov.nist.secauto.metaschema.core.model.validation.JsonSchemaContentValidator; import gov.nist.secauto.metaschema.core.model.validation.XmlSchemaContentValidator; -import gov.nist.secauto.metaschema.core.model.MetaschemaModelConstants; import gov.nist.secauto.metaschema.core.util.CollectionUtil; import gov.nist.secauto.metaschema.core.util.ObjectUtils; import gov.nist.secauto.metaschema.databind.IBindingContext;