Skip to content

0.5.0

Pre-release
Pre-release
Compare
Choose a tag to compare
@jamierocks jamierocks released this 21 May 20:12
· 122 commits to develop since this release
cced203

Lorenz 0.5.0 has enjoyed a long development process (beginning the 1st of September!),
and packs a bundle of cool changes. The most notable being the change of package, from
me.jamiemansfield.lorenz to org.cadixdev.lorenz.

Modularisation

The long put-off modularisation has finally arrived - with the Enigma, JAM, and Kin
mapping formats being given their own modules.

  • Enigma: org.cadixdev:lorenz-io-enigma:0.5.0
  • JAM: org.cadixdev:lorenz-io-jam:0.5.0
  • Kin: org.cadixdev:lorenz-io-kin:0.5.0

Mapping formats can be introduced through service providers, and MappingFormats will
populate a registry with all the formats found. You can get a mapping format, like the
following:

final MappingFormat enigma = MappingFormats.byId("enigma");
final MappingFormat jam    = MappingFormats.byId("jam");
final MappingFormat kin    = MappingFormats.byId("kin");

Merging and reversing

Mapping sets can now be reversed (A->B -> B->A), and mapping sets merged
(A->B + B->C = A->C). This can be achieved like the following.

// let a be a MappingSet
// let b be a MappingSet

final MappingSet reversed = a.reverse();
final MappingSet merged = a.merge(b);

Extension Data

Lorenz now supports adding extension data to the mapping model (no existing formats serialise this
information
).

static final ExtensionKey<String> EXTRA_NAME = new ExtensionKey<>(String.class, "extra_name");

final MappingSet mappings = new MappingSet();
mappings.set(EXTRA_NAME, "Beep Boop");
mappings.get(EXTRA_NAME).get(); // Beep Boop