2010-04-22 17 views
5

Tengo una consulta HQL:Analizar HQL a Estructura AST y convertir AST volver a HQL

query = select item.itemNumber from items item where item.stock>0 and item.price<100.00 

me gusta analizar esta consulta y convertirla en una estructura de árbol:

AST queryTree = parse(query); 

de lo gustaría repetir por los nodos, cambiar algunos valores, y convertir el árbol de nuevo a un represenation cadena:

Iterator<ASTNode> it = queryTree.nodeIterator(); 
while(it.hasNext()) 
{ 
    ASTNode node = it.next(); 
    System.out.println(node.text() + "->" + node.value()); 
} 
query = queryTree.toString(); 

que sería bueno si t El método de análisis arrojaría Excepciones en caso de que se violara la gramática HQL, pero no es necesario. ¿Alguien tiene una idea de cómo se puede lograr esto? ¿Hay algún método API que hibernate ofrezca para realizar esa tarea?

Gracias,

Respuesta