TinkerPop Frames - сохранение карты<String, String> в свойствах вершины

Я хотел бы сохранить чистую карту в свойствах вершин. Мотивация заключается в том, что я заранее не знаю, какие свойства будет содержать карта. И сохранение одной вершины на свойство не кажется эффективным. Как бы я это сделал?

interface Foo {
    @Properties...?
    Map<String,String> getProperties();

    @Properties
    Map<String,String> addProperty();
}

Возможно, через обработчики методов. Как? И есть ли нативная поддержка?

1 ответ

Решение

Я добавил поддержку для этого с помощью обработчиков. Смотрите проект Windup. https://github.com/windup/windup/pull/157

Вот так это выглядит в моделях.

Этот хранит карту в подпорках вершины данного кадра, используя префикс map:

@TypeValue("MapInAdjPropsModelMain")
public interface MapMainModel extends WindupVertexFrame
{
    @InProperties(propPrefix = "map") void setMap(Map<String, String> map);

    @InProperties(propPrefix = "map") Map<String, String> getMap();
}

И этот хранит карту в соседней вершине, следовательно, может хранить несколько карт:

@TypeValue("MapInAdjPropsModelMain")
public interface MapMainModel extends WindupVertexFrame
{
    @InAdjacentProperties(edgeLabel = "map")
    void setMap(Map<String, String> map);

    @InAdjacentProperties(edgeLabel = "map")
    Map<String, String> getMap();

    @InAdjacentProperties(edgeLabel = "map2")
    void setMap2(Map<String, String> map);

    @InAdjacentProperties(edgeLabel = "map2")
    Map<String, String> getMap2();
}
Другие вопросы по тегам