[REST] New API for conversion between file format and JSON (#4793)

* [REST] New API for conversion between file format and JSON

Related to #4585

This PR supports conversion of things and items.
It supports DSL and YAML file formats.

A first new API (POST /file-format/create) allows to create a file format (DSL or YAML) from a JSON object.
A second new API (POST /file-format/parse) allows to parse a file format (DSL or YAML) to a JSON object.

These 2 APIs should help Main UI displaying DSL and YAML file formats for things.

Signed-off-by: Laurent Garnier <lg.hc@free.fr>
This commit is contained in:
lolodomo
2025-09-21 11:48:33 +02:00
committed by GitHub
parent 0f7049347d
commit 00b6a476a7
29 changed files with 1865 additions and 336 deletions
@@ -37,7 +37,7 @@ public class GenericMetadataProviderTest {
@Test
public void testAddMetadata() {
GenericMetadataProvider provider = new GenericMetadataProvider();
provider.addMetadata("binding", "item", "value", null);
provider.addMetadata("model", "binding", "item", "value", null);
Collection<Metadata> res = provider.getAll();
assertEquals(1, res.size());
assertEquals("value", res.iterator().next().getValue());
@@ -46,27 +46,27 @@ public class GenericMetadataProviderTest {
@Test
public void testRemoveMetadataNonExistentItem() {
GenericMetadataProvider provider = new GenericMetadataProvider();
provider.removeMetadataByItemName("nonExistentItem");
provider.removeMetadataByItemName("model", "nonExistentItem");
}
@Test
public void testRemoveMetadataByItemName() {
GenericMetadataProvider provider = new GenericMetadataProvider();
provider.addMetadata("other", "item", "value", null);
provider.addMetadata("binding", "item", "value", null);
provider.addMetadata("binding", "other", "value", null);
provider.addMetadata("model", "other", "item", "value", null);
provider.addMetadata("model", "binding", "item", "value", null);
provider.addMetadata("model", "binding", "other", "value", null);
assertEquals(3, provider.getAll().size());
provider.removeMetadataByItemName("item");
provider.removeMetadataByItemName("model", "item");
assertEquals(1, provider.getAll().size());
}
@Test
public void testRemoveMetadataByNamespace() {
GenericMetadataProvider provider = new GenericMetadataProvider();
provider.addMetadata("other", "item", "value", null);
provider.addMetadata("binding", "item", "value", null);
provider.addMetadata("binding", "other", "value", null);
provider.addMetadata("model", "other", "item", "value", null);
provider.addMetadata("model", "binding", "item", "value", null);
provider.addMetadata("model", "binding", "other", "value", null);
assertEquals(3, provider.getAll().size());
provider.removeMetadataByNamespace("binding");