Вы можете иметь директиву схемы с OBJECT
в качестве цели, которая перебирает поля этого объекта и изменяет преобразователь каждого поля. Однако logi c решателя всегда находится на уровне поля, поскольку разрешаются только поля. Если логика c, которую вы повторяете, не зависит от аргументов, переданных распознавателю, то он может находиться внутри visitObject
, в противном случае он должен находиться внутри самой функции распознавателя.
Если работа то, что вы делаете внутри преобразователя, является избыточным, тогда вы, вероятно, можете кэшировать любое значение, которое вы многократно вычисляете. Кеш может быть переменной внутри вашего класса директив (в этом случае он будет очищен только при перезапуске процесса) или может быть вставлен в контекст (в этом случае он будет задан по запросу c и уничтожен после Ваш запрос завершен).