Я хочу проанализировать свою функцию на одном диалекте и затем преобразовать ее на другой диалект.
Например, у меня есть такая строка на одном диалекте:
"(1 + my_function(myTable.id*2))/2"
И я хочупроанализировать и отобразить его на другом диалекте, например:
"(1 + my_other_dialect_function(myTable.id*2))/2"
Я создал CustomField
наследник, который будет правильно отображаться с использованием этого примера :
class MyFunctionCustomFiled extends CustomField<Integer>
Но я не могу найти правильный способ вставить это в выражение.
Могу ли я сделать это на этапе разбора? Или на этапе рендеринга с использованием VisitListener, как показано ниже?
public class CustomFunctionsFisitListener2 extends DefaultVisitListener {
public void visitStart(VisitContext context){
if(context.queryPart().isTheFunctionINeed()){
Field<?> argument = context.queryPart().retrieveArgumentExpression();
context.queryPart(MyFunctionCustomFiled(argument));
}
}
}