// ===================================================================================
 //                                                                          AutoDetect
 //                                                                          ==========
 // -----------------------------------------------------
 //                                                  Core
 //                                                  ----
 protected void processAutoDetect(
     String sql,
     Map<String, String> propertyNameTypeMap,
     Map<String, String> propertyNameOptionMap,
     Set<String> autoDetectedPropertyNameSet) {
   final SqlAnalyzer analyzer = new SqlAnalyzer(sql, false);
   final Node rootNode = analyzer.analyze();
   doProcessAutoDetect(
       sql, propertyNameTypeMap, propertyNameOptionMap, autoDetectedPropertyNameSet, rootNode);
 }
 // ===================================================================================
 //                                                                          DisplaySql
 //                                                                          ==========
 public static String convertConditionBean2DisplaySql(
     SqlAnalyzerFactory factory,
     ConditionBean cb,
     String logDateFormat,
     String logTimestampFormat) {
   final String twoWaySql = cb.getSqlClause().getClause();
   return SqlAnalyzer.convertTwoWaySql2DisplaySql(
       factory, twoWaySql, cb, logDateFormat, logTimestampFormat);
 }