Skip to content

Releases: mtrevisan/Boxon

6.0.0

13 Oct 09:49
Compare
Choose a tag to compare
  • Improve error messages and handling in encoding and decoding process.
  • Now it's possible to extends a codec.
  • Now it's possible to annotate a custom annotation, creating a default.
  • Added `ContextParameter` annotation which assigns a constant or calculated value to a parameter that will be added to the context before processing; each context parameter is created before a field is decoded or encoded and removed as soon as the field processing completes.
  • Added `enumerations` key in template and configuration descriptions.
  • Added `Generator`, to create an annotated `Template` and `ConfigurationMessage` from a description generated by the `Describer` (an enumeration is represented as an array of strings, each string is a pair `()`, where `name` is the name of the enum element, and `value` is a number associated with the element; context data are ignored).
  • Added long description and unit of measure attribute to `BindBitSet`, `BindInteger`, `BindObject`, `BindString`, `BindStringTerminated`, `Evaluate`, and `PostProcess` annotations.
  • Fixed bug on missing `annotationType` in alternatives' description.
  • 2× in speed with respect to previous version due to efficient use of (configurable) memoizers (see `Parser`) and other improvements.
  • Custom `DeviceTypes` code length (no longer bounded to be a `byte`).

5.0.0

17 May 19:04
Compare
Choose a tag to compare
  • Add support for BindAsArray and BindAsList instead of many BindArray/BindArrayPrimitive and BindList, now removed.
  • Cleaning and refactoring of various codecs.
  • Major reorganization of the code, along with refactor to make it more modular and cohesive, and removal of duplicated code.
  • Simplified the exception handling.
  • Improved annotation validation by skipping validations for non-library annotations.
  • Revised and corrected the reader.
  • Added custom validation for custom codecs.
  • Added similarity/distance calculation between descriptions.

4.0.0

19 Apr 21:22
Compare
Choose a tag to compare
  • Incompatibility between read type, converter input, converter output, validator, and field type is now resolved during core construction, rather than at runtime.
  • Fixed error while handling of SkipBits and SkipUntilTerminator to allow processing multiple instances.
  • Removed useless BindFloat and BindDouble has they are rarely used and can be substituted by the appropriate converters (IntegerToFloatConvert and LongToDoubleConverter).
  • Removed useless BindByte, BindShort, BindInt, and BindLong as they can be substituted by BindInteger.
  • Renamed Descriptor into the more meaningful Describer.
  • Added builder to Version.
  • Many smells removed, major code refactor.

3.6.0

13 Apr 06:57
Compare
Choose a tag to compare
  • Specialized Skip annotation into SkipBits and SkipUntilTerminator.
  • Added subtypes descriptor on BindObject, BindArray, BindList, ObjectChoices.ObjectChoice, and ObjectChoicesList.ObjectChoiceList.
  • Some minor improvements.

3.5.1

09 Apr 18:19
Compare
Choose a tag to compare
  • Fix error while assessing size value.
  • Corrected NullObjectChoice and NullObjectChoiceList type value.
  • Fix error while putting numeric value in NumberWriterManager.
  • Removed the default on Skip size: it was intended to be mandatory.
  • Fixed bug on evaluating an expression on a deep nested object.
  • (minor) Fix missing field name in parser context in TemplateParser.encode.

3.5.0

06 Apr 07:02
Compare
Choose a tag to compare
  • Added condition on Checksum annotation.
  • Removed type and startValue from Checksum: the same information can be retrieved from the algorithm used, plus, the start value can be embedded in the implemented class.
  • Fixed a problem while converting a numeric string to number.
  • Make record classes work with annotations.
  • Slightly reduced memory footprint and improved execution time.

3.4.0

18 Mar 18:01
Compare
Choose a tag to compare
  • Removed runLast from Evaluator, added a specialized annotation that can work in both decoding and encoding phases.
  • Added method describeParser to Descriptor to also include the description of evaluation and post-processing fields.

3.3.0

17 Mar 14:53
Compare
Choose a tag to compare
  • Added description of configuration.
  • Changed the key to reference a configuration (from start to shortDescription).
  • Corrected generation of parameter MutuallyExclusive on configuration description.
  • Corrected log text on enumeration error.
  • Fixed a test that occasionally fails.

3.2.0

12 Mar 20:11
Compare
Choose a tag to compare

Added runLast to Evaluator to run an evaluation after all other evaluations have been made (used, for example, to restore a default value after being used by another evaluator).

3.1.3

11 Mar 21:01
Compare
Choose a tag to compare
  • fixed duplicated descriptions.
  • fixed validation on max value while composing a message.
  • fixed number not written with the correct radix.
  • made shortDescription mandatory in the annotation, as it should have been.
  • added method to map a POJO into a Map<String, Object> in ReflectionHelper.
  • added method Configurator.composeConfiguration accepting a POJO.
  • corrected errors in the documentation.
  • migrated from java 11 to java 21 for performance.