public Predicate getQueryFilter()

in rest-util/src/main/java/org/apache/archiva/components/rest/util/QueryHelper.java [189:206]


    public Predicate<T> getQueryFilter( String queryTerms )
    {
        return Arrays.stream( queryTerms.split( "\\s+" ) )
            .map( s -> {
                    if ( s.contains( ":" ) )
                    {
                        String attr = StringUtils.substringBefore( s, ":" );
                        String term = StringUtils.substringAfter( s, ":" );
                        return getAttributeQueryFilter( attr, term );
                    }
                    else
                    {
                        return Arrays.stream( defaultSearchAttributes )
                            .map( att -> getAttributeQueryFilter( att, s ) ).reduce( Predicate::or ).orElseThrow(  () -> new RuntimeException( "Fatal error. No filter predicate found." ));
                    }
                }
            ).reduce( Predicate::or ).orElseThrow( () -> new RuntimeException( "Fatal error. No filter predicate found." ) );
    }