Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Refactored core model classes and support for collections of model in… #256

Merged

Commits on Jan 24, 2024

  1. Configuration menu
    Copy the full SHA
    af9ad3e View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    19c547c View commit details
    Browse the repository at this point in the history
  3. Refactored IBindingContext to move supporting interfaces to be child …

    …interfaces.
    
    Removed the need to instances of IDataTypeHandler. Now IClassDataTypeHandler functionality is provided by IFeatureComplexItemValueHandler and JavaTypeAdapterDataTypeHandler is provided by IFeatureScalarItemValueHandler.
    Refactored bound class hierarchy to be more consistent with needed methods.
    - Moved Java field handling to IFeatureJavaField from IBoundNamedModelInstance
    - Moved JSON key and item handling to IBoundModelInstance.
    - Reworked XML and JSON reading and writing.
    - Added IBoundChoiceGroupInstance interface for choice groups.
    david-waltermire committed Jan 24, 2024
    Configuration menu
    Copy the full SHA
    9a1de8a View commit details
    Browse the repository at this point in the history
  4. Refactored ILet statement construction to use static factory methods.

    Cleaned up IModelPropertyInfo and implementations, relocating supporting classes as child classes.
    Implemented a IModelInstance item parsing as IModelPropertyInfo.IReadHandler, allowing all item parsing to be implemented in the format-specific parsing classes, i.e. MetaschemaJsonReader, MetaschemaXmlReader.
    david-waltermire committed Jan 24, 2024
    Configuration menu
    Copy the full SHA
    2e72f5f View commit details
    Browse the repository at this point in the history
  5. Cleaned up IModelPropertyInfo readItems methods, which now return the…

    … parsed value. Eliminated the need for IPropertyCollector instances.
    david-waltermire committed Jan 24, 2024
    Configuration menu
    Copy the full SHA
    bdc4897 View commit details
    Browse the repository at this point in the history
  6. Renamed many instance implementation classes to ensure consistent use…

    … of terminology. Prior the terms "property" and "instance" were used interchangeably, which could cause some confusion.
    david-waltermire committed Jan 24, 2024
    Configuration menu
    Copy the full SHA
    2fb15b7 View commit details
    Browse the repository at this point in the history
  7. Refactored XML and JSON item writing to use a shared IModelInstanceCo…

    …llectionInfo.IWriteHandler implementation, allowing all item writing to be implemented in the format-specific classes, i.e. MetaschemaJsonWriter, MetaschemaXmlWriter.
    david-waltermire committed Jan 24, 2024
    Configuration menu
    Copy the full SHA
    1424488 View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    6fe9042 View commit details
    Browse the repository at this point in the history
  9. Added some Javadocs.

    Aligned annotations with class generation, adding support for many missing annotation entries.
    david-waltermire committed Jan 24, 2024
    Configuration menu
    Copy the full SHA
    c046172 View commit details
    Browse the repository at this point in the history
  10. Fixed default value handling which wasn't producing empty collection …

    …for unparsed model instances.
    
    Refactored JSON key handling to determine the JSON key on a per item basis. This is needed for ChoiceGroups.
    Fixed IBindingMatcher to use the correct class type.
    david-waltermire committed Jan 24, 2024
    Configuration menu
    Copy the full SHA
    b0ab481 View commit details
    Browse the repository at this point in the history
  11. Added binding support for choice groups.

    Fixed some PMD errors.
    david-waltermire committed Jan 24, 2024
    Configuration menu
    Copy the full SHA
    744a3af View commit details
    Browse the repository at this point in the history
  12. Moved JSON reading and writing code from IItemValueHandler to Metasch…

    …emaJsonReader and MetaschemaJsonWriter using dispatch methods. This allows are IO code to be implemented withing the JSON format-specific implementation.
    david-waltermire committed Jan 24, 2024
    Configuration menu
    Copy the full SHA
    e224ac0 View commit details
    Browse the repository at this point in the history
  13. Moved XML reading and writing code from IItemValueHandler to Metasche…

    …maXmlReader and MetaschemaXmlWriter using dispatch methods. This allows are IO code to be implemented withing the XML format-specific implementation.
    david-waltermire committed Jan 24, 2024
    Configuration menu
    Copy the full SHA
    ff882ce View commit details
    Browse the repository at this point in the history
  14. Configuration menu
    Copy the full SHA
    6addaae View commit details
    Browse the repository at this point in the history
  15. Refactored instance class hierarchy to support grouped and ungrouped …

    …model instances, with minimal implementation.
    
    Cleaned up getDefaultValue and getEffectiveDefaultValue methods.
    Implemented choice group writing for XML, JSON, and YAML.
    Initial commit of the Metaschema module bindings.
    david-waltermire committed Jan 24, 2024
    Configuration menu
    Copy the full SHA
    7b7b731 View commit details
    Browse the repository at this point in the history
  16. Cleaned up IBoundGroupedFieldInstance implementations to use only the…

    … complex form, since a grouped item must have a bound class to determine its item type.
    
    Cleaned up JSON value key naming code.
    Adjusted the name used during code generation to use the value key name if available. This provides a more sensible name for Java property get and set methods created during code generation.
    Added support for deprecated on allowed value enumerations.
    david-waltermire committed Jan 24, 2024
    Configuration menu
    Copy the full SHA
    caf16e3 View commit details
    Browse the repository at this point in the history
  17. Performed some code cleanup and formatting.

    Fixed the compile error in SimpleFieldInstance by creating the ISimpleScalarItemValueJavaField interface to combine the interfaces used and point the getValue and setValue methods to the correct implementation.
    david-waltermire committed Jan 24, 2024
    Configuration menu
    Copy the full SHA
    b9a0297 View commit details
    Browse the repository at this point in the history
  18. Configuration menu
    Copy the full SHA
    29e6200 View commit details
    Browse the repository at this point in the history
  19. Fixed ordering of generated flag fields. They will now be ordered in …

    …the order in which they are declared in the Metaschema module.
    
    Fixed compile errors.
    david-waltermire committed Jan 24, 2024
    Configuration menu
    Copy the full SHA
    def8f86 View commit details
    Browse the repository at this point in the history
  20. Renamed model interfaces for greater consistency.

    Cleaned up bound module loading in DefaultBindingContext.
    Stubbed out grouped instance implementations.
    Started refactor of choice group instances. Still need to work on Metapath items and other unimplemented methods.
    Added testing of assemblies with various types of fields and flags.
    Refactored DefaultJsonDeserializer to read a root element without the need to produce a Metapath item first.
    Implemented new unit tests to test the model bindings.
    Adjusted the class generation for grouped instances to allow for extended classes where definitions are used by reference.
    Implemented subclass generation for choice group instances.
    Updated generated Metaschema module classes.
    david-waltermire committed Jan 24, 2024
    Configuration menu
    Copy the full SHA
    1587382 View commit details
    Browse the repository at this point in the history
  21. Configuration menu
    Copy the full SHA
    1a6b9b5 View commit details
    Browse the repository at this point in the history
  22. Removed "binding" interfaces and classes, flattening these into the r…

    …elated "bound" interfaces and classes.
    david-waltermire committed Jan 24, 2024
    Configuration menu
    Copy the full SHA
    0340a6e View commit details
    Browse the repository at this point in the history
  23. Configuration menu
    Copy the full SHA
    bd93213 View commit details
    Browse the repository at this point in the history
  24. Configuration menu
    Copy the full SHA
    eb3e8d2 View commit details
    Browse the repository at this point in the history
  25. Fixed all identified bugs in XML parsing.

    Added support for parsing XML fields as a root element.
    david-waltermire committed Jan 24, 2024
    Configuration menu
    Copy the full SHA
    a3b7c49 View commit details
    Browse the repository at this point in the history
  26. Configuration menu
    Copy the full SHA
    5c9bee8 View commit details
    Browse the repository at this point in the history
  27. Some progress towards XML writing. Need to implement choice groups st…

    …ill.
    
    Fixed miscellaneous compile errors in other modules.
    david-waltermire committed Jan 24, 2024
    Configuration menu
    Copy the full SHA
    1025f39 View commit details
    Browse the repository at this point in the history
  28. Fixed issues with the XML reader.

    Fixed compile errors for other modules to align with recent changes.
    david-waltermire committed Jan 24, 2024
    Configuration menu
    Copy the full SHA
    7e3a331 View commit details
    Browse the repository at this point in the history
  29. Fixed remaining unit test failures.

    Fixed some compile issues.
    Fixed remaining unit tests.
    david-waltermire committed Jan 24, 2024
    Configuration menu
    Copy the full SHA
    d72569c View commit details
    Browse the repository at this point in the history
  30. Configuration menu
    Copy the full SHA
    48e579a View commit details
    Browse the repository at this point in the history
  31. Configuration menu
    Copy the full SHA
    c1a221d View commit details
    Browse the repository at this point in the history
  32. Configuration menu
    Copy the full SHA
    bba78e9 View commit details
    Browse the repository at this point in the history
  33. Configuration menu
    Copy the full SHA
    37c20c8 View commit details
    Browse the repository at this point in the history
  34. Configuration menu
    Copy the full SHA
    0a87926 View commit details
    Browse the repository at this point in the history
  35. Moved Metaschema module binding classes to a subdirectory to help wit…

    …h change integration.
    
    Started work on Metaschema module wrappers for bound objects.
    david-waltermire committed Jan 24, 2024
    Configuration menu
    Copy the full SHA
    593052b View commit details
    Browse the repository at this point in the history
  36. Configuration menu
    Copy the full SHA
    1dd6083 View commit details
    Browse the repository at this point in the history
  37. Configuration menu
    Copy the full SHA
    e309ace View commit details
    Browse the repository at this point in the history
  38. Completed work on a Metaschema module loader that uses the Metaschema…

    … module binding instead of the XML parser. Metaschema modules in XML, JSON, and YAML can now be fully read!
    david-waltermire committed Jan 24, 2024
    Configuration menu
    Copy the full SHA
    07a7c7c View commit details
    Browse the repository at this point in the history
  39. Added Metaschema module loader support for entity resolution. Tested …

    …with OSCAL Metaschema modules.
    david-waltermire committed Jan 24, 2024
    Configuration menu
    Copy the full SHA
    7ea4710 View commit details
    Browse the repository at this point in the history
  40. Refactored container handling code to reuse the core model implementa…

    …tion where possible.
    
    Refactored group-as namespace handling to allow for no namespace situations. Implemented getEffectiveGroupAsNamespace to handle the default case of using the module namespace where no group-as support is provided.
    Relocated the IModulePostProcessor interface to the new IModuleLoader interface.
    Refactored flag and field name handling for a cleaner implementation. This new approach uses "name" as the binding annotation value for flags, instead of "useName".
    Completed binding support. All current JUnit tests run without error.
    Added support for a model(node) Metapath function that gets a nodeset based on the underlying Metaschema module model for the node.
    david-waltermire committed Jan 24, 2024
    Configuration menu
    Copy the full SHA
    c6a0b77 View commit details
    Browse the repository at this point in the history
  41. Refactored core model interfaces to reduce inheritance conflicts.

    Fixed remaining JUnit and schema generation bugs.
    david-waltermire committed Jan 24, 2024
    Configuration menu
    Copy the full SHA
    3231f85 View commit details
    Browse the repository at this point in the history
  42. Configuration menu
    Copy the full SHA
    a89ece3 View commit details
    Browse the repository at this point in the history
  43. Configuration menu
    Copy the full SHA
    f21e4de View commit details
    Browse the repository at this point in the history
  44. Performed some overall interface cleanup.

    Refactored JSON schema generator. Many improvements to the indexing approach used to determine which definitions become global definitions in the JSON schema.
    Fixed missing properties in choice group items.
    Improved JSON documentation to include titles and descriptions on properties.
    JSON and XML schema generation for choice groups is working.
    david-waltermire committed Jan 24, 2024
    Configuration menu
    Copy the full SHA
    8dc5838 View commit details
    Browse the repository at this point in the history
  45. Configuration menu
    Copy the full SHA
    1ef5f2c View commit details
    Browse the repository at this point in the history
  46. Fixed a bug causing constraint targets to not get parsed and instead …

    …end up as null.
    
    Fixed a bug causing empty annotation documentation in XML for enumerated values with no description.
    david-waltermire committed Jan 24, 2024
    Configuration menu
    Copy the full SHA
    53c5203 View commit details
    Browse the repository at this point in the history
  47. Configuration menu
    Copy the full SHA
    2da5a5d View commit details
    Browse the repository at this point in the history