Я разбираю запрос Гремлина в Java (ну, собственно, я пишу Scala, и используя компилированные JAR-файлы Groovy, подобные Java).Почему разбор запроса Гремлина на Java не является общим?
Запрос представляет собой переменную String, заданную пользователем с помощью ввода. Другими словами - я не могу сказать, каков будет запрос, я предполагаю, что это действительный запрос Гремлина (синтаксически и логически).
Я начал с простого Gremlin.compile(query)
, который возвращает Pipe
, на котором я выполняю итерацию. Однако, согласно the example, перед итерацией трубы необходимо вызывать .setStarts
. И я должен знать, что такое тип времени выполнения S
в моем Pipe<S,E>
.
Он чувствует, как этот API не является универсальным достаточно, следующая строка из примера
pipe.setStarts(new SingleIterator<Vertex>(graph.getVertex(1)));
будет работать в некоторых случаях, но для Vertex Итерации для одного примера (g.V()
) он будет бросать CastException.
Есть ли способ обходить его?
Возможно, использование базового скриптового движка (как и следующие примеры в ссылке выше) поможет мне получить более общий код?