[ 
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

        

Reply via email to