@ SuppressWarnings ( { "rawtypes" , "unchecked" } ) private Predicate [ ] analyzeParamMap ( CriteriaBuilder criteriaBuilder , Root from , Map < String , Object > param ) { List < Predicate > predicates = new ArrayList < Predicate > ( ) ; for ( Map . Entry < String , Object > entry : param . entrySet ( ) ) { String key = entry . getKey ( ) ; Object value = entry . getValue ( ) ; if ( key . equals ( "timestamp" ) ) { predicates . add ( criteriaBuilder . le ( from . get ( "timestamp" ) , ( Long ) value ) ) ; } else if ( key . equals ( "committer" ) ) { predicates . add ( criteriaBuilder . equal ( from . get ( "committer" ) , value ) ) ; } else if ( key . equals ( "context" ) ) { predicates . add ( criteriaBuilder . equal ( from . get ( "context" ) , value ) ) ; } } Predicate [ ] temp = new Predicate [ predicates . size ( ) ] ; for ( int i = 0 ; i < predicates . size ( ) ; i ++ ) { temp [ i ] = predicates . get ( i ) ; } return temp ; }
Analyzes the map and filters the values which are used for query