[ https://issues.apache.org/jira/browse/JEXL-139?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Henri Biestro resolved JEXL-139. -------------------------------- Resolution: Incomplete The submitted code is not an enhancement request; it is first and foremost lacking a goal/use-case. If you want to resubmit/reopen it, please describe in words what this is supposed to achieve and how this would benefit other users. As is, this is only an example of using Jexl in a specific way (that probably could benefit from Jxlt expressions / templates). > Loop over an iterable, evalaute and expression per row, and return > concatenated results > --------------------------------------------------------------------------------------- > > Key: JEXL-139 > URL: https://issues.apache.org/jira/browse/JEXL-139 > Project: Commons JEXL > Issue Type: New Feature > Reporter: Manoj Mokashi > Priority: Minor > Original Estimate: 24h > Remaining Estimate: 24h > > Code below. > /** > * Iterates over the iterable represented by iterExpression > * For each row, evaluate the row-expression > * Return a string of all row-results, concatenated by separator. > * The current current row is indicated by $$__EVAL_ROW and the current > index by $$__EVAL_ROWNUM > * @param enumExpression > * @param expression > * @return > */ > public String evalExprOverIter( String iterExpression, String > rowExpression, String separator){ > Object objIter = evalExpr( iterExpression); > if( objIter == null ){ return "";} > Iterable iterabl = null; > if( objIter.getClass().isArray()){ > iterabl = Arrays.asList( (Object[]) objIter ); > } > else if( objIter instanceof Map){ > iterabl = ((Map) objIter).entrySet(); > } > else { > iterabl = (Iterable) objIter; > } > Iterator iter = iterabl.iterator(); > StringBuilder sbld = new StringBuilder(); > int rownum = 0; > while( iter.hasNext()){ > Object row = iter.next(); > setVar( "$$__EVAL_ROW", row ); > setVar( "$$__EVAL_ROWNUM", rownum ); > sbld.append( evalExpr( rowExpression) ); > sbld.append( separator ); > rownum++; > } > // remove the temp variables we used. > remVar( "$$__EVAL_ROWNUM" ); > remVar( "$$__EVAL_ROW" ); > return sbld.deleteCharAt( sbld.length()-1).toString(); -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira