/** {@inheritDoc} */
 @Override
 Object getProperty(SqlProcessContext ctx, Object obj, String item) {
   String prefix = null;
   String suffix = null;
   String name = null;
   int ix = item.indexOf("?");
   if (ix >= 0) {
     prefix = item.substring(0, ix);
     suffix = item.substring(ix + 1);
     name = prefix + suffix;
   } else {
     ix = item.indexOf("@");
     if (ix >= 0) {
       prefix = item.substring(0, ix);
       suffix = SqlProcessContext.getFeature(item.substring(ix + 1));
       name = prefix + suffix;
     } else {
       name = item;
     }
   }
   Object result = (BeanUtils.checkProperty(obj, name)) ? BeanUtils.getProperty(obj, name) : null;
   if (result != null || prefix == null || suffix == null) return result;
   suffix = SqlUtils.firstLowerCase(suffix);
   Object o = (BeanUtils.checkProperty(obj, suffix)) ? BeanUtils.getProperty(obj, suffix) : null;
   if (o == null || !(o instanceof Map)) {
     suffix = SqlProcessContext.getFeature(SqlFeature.OPERATOR_ATTRIBUTE_IN_MAP);
     o = (BeanUtils.checkProperty(obj, suffix)) ? BeanUtils.getProperty(obj, suffix) : null;
     if (o == null || !(o instanceof Map)) {
       return null;
     }
   }
   Map map = (Map) o;
   return map.get(prefix);
 }
Example #2
0
 SqlEngineFactory getEngineFactory(String name) {
   SqlProcessContext.nullFeatures();
   SqlProcessContext.nullTypeFactory();
   SqlEngineFactory factory;
   factory =
       new SqlProcessorLoader(
           metaStatements,
           JdbcTypeFactory.getInstance(),
           SimpleSqlPluginFactory.getInstance(),
           dbType,
           null,
           customTypes,
           name);
   assertNotNull(factory);
   return factory;
 }