/**
* filter
* 数据过滤
*
* @param $list:list:列表。
* @param $predicate:map:谓语函数test,返回布尔值。
*
* @return list:过滤后的数据
*
*/
#function filter ($list, $predicate)
#if ($vs.util.isBlankOne($list, $predicate))
return null
#end
#if ($vs.util.isList($list))
#set($result = $vs.util.newList())
#foreach ($row in $list)
#if ($predicate.test($row))
$result.add($row)
#end
#end
return $result
#end
return null
#end
// 谓语函数
#function test ($row)
return false
#end
#set($predicate = $vs.util.newMap())
#set($predicate.test = @test)
// 数据过滤
#set($list = @filter($list, $predicate))