Object obj = JsonUtils.select( entity, select.getSourceFieldName(), false ); if ( obj != null ) { Map<String, Object> result = new LinkedHashMap<String, Object>(); result.put( select.getTargetFieldName(), obj ); results.add( result );
/** * Possiblly add a single select to our results */ public ParsedQuery addSelect( final String select ) { final String normalizedSelect = getSelect( select ); if ( normalizedSelect == null ) { return this; } fieldMappings.put( select, new SelectFieldMapping( normalizedSelect, normalizedSelect ) ); return this; }
@Test public void selectRename() throws RecognitionException { String queryString = "select {source:target} where a = 1 or b > 2"; ANTLRStringStream in = new ANTLRStringStream( queryString ); CpQueryFilterLexer lexer = new CpQueryFilterLexer( in ); TokenRewriteStream tokens = new TokenRewriteStream( lexer ); CpQueryFilterParser parser = new CpQueryFilterParser( tokens ); ParsedQuery query = parser.ql().parsedQuery; Collection<SelectFieldMapping> identifiers = query.getSelectFieldMappings(); final SelectFieldMapping fieldMapping = identifiers.iterator().next(); assertEquals( "source", fieldMapping.getSourceFieldName() ); assertEquals( "target", fieldMapping.getTargetFieldName() ); }
/** * Use this when the user does a "select id:mynewidname " in the select clause of the grammar * @param select * @param output * @return */ public ParsedQuery addSelect( final String select, final String output ) { final String normalizedSelect = getSelect( select ); if ( normalizedSelect == null ) { return this; } final String normalizedOutput = getSelect( output ); if ( normalizedOutput == null ) { return this; } fieldMappings.put( select, new SelectFieldMapping( normalizedSelect, normalizedOutput ) ); return this; }
@Test public void selectField() throws RecognitionException { String queryString = "select c where a = 1 or b > 2"; ANTLRStringStream in = new ANTLRStringStream( queryString ); CpQueryFilterLexer lexer = new CpQueryFilterLexer( in ); TokenRewriteStream tokens = new TokenRewriteStream( lexer ); CpQueryFilterParser parser = new CpQueryFilterParser( tokens ); ParsedQuery query = parser.ql().parsedQuery; Collection<SelectFieldMapping> identifiers = query.getSelectFieldMappings(); final SelectFieldMapping fieldMapping = identifiers.iterator().next(); assertEquals( "c", fieldMapping.getSourceFieldName() ); assertEquals( "c", fieldMapping.getTargetFieldName() ); }
if ( entity.getFieldMap().containsKey(mapping.getSourceFieldName())) { return true; String[] parts = mapping.getSourceFieldName().split("\\."); return nestedFieldCheck( parts, entity.getFieldMap() ); }) Field field = entity.getField(mapping.getSourceFieldName()); if ( field != null ) { field.setName( mapping.getTargetFieldName() ); fieldMap.put( mapping.getTargetFieldName(), field ); } else { String[] parts = mapping.getSourceFieldName().split("\\."); nestedFieldSet( fieldMap, parts, entity.getFieldMap() );