public static Query fromQueryParams()

in stack/core/src/main/java/org/apache/usergrid/mq/Query.java [186:349]


    public static Query fromQueryParams( Map<String, List<String>> params ) {
        String type = null;
        Query q = null;
        String ql = null;
        String connection = null;
        UUID start = null;
        String cursor = null;
        Integer limit = null;
        List<String> permissions = null;
        Boolean reversed = null;
        Long startTime = null;
        Long finishTime = null;
        Boolean pad = null;
        CounterResolution resolution = null;
        List<Identifier> users = null;
        List<Identifier> groups = null;
        List<Identifier> identifiers = null;
        List<String> categories = null;
        List<CounterFilterPredicate> counterFilters = null;

        List<String> l = null;

        ql = first( params.get( "ql" ) );
        type = first( params.get( "type" ) );
        reversed = firstBoolean( params.get( "reversed" ) );
        connection = first( params.get( "connection" ) );
        start = firstUuid( params.get( "start" ) );
        cursor = first( params.get( "cursor" ) );
        limit = firstInteger( params.get( "limit" ) );
        permissions = params.get( "permission" );
        startTime = firstLong( params.get( "start_time" ) );
        finishTime = firstLong( params.get( "end_time" ) );

        l = params.get( "resolution" );
        if ( !isEmpty( l ) ) {
            resolution = CounterResolution.fromString( l.get( 0 ) );
        }

        users = Identifier.fromList( params.get( "user" ) );
        groups = Identifier.fromList( params.get( "group" ) );

        categories = params.get( "category" );

        l = params.get( "counter" );
        if ( !isEmpty( l ) ) {
            counterFilters = CounterFilterPredicate.fromList( l );
        }

        pad = firstBoolean( params.get( "pad" ) );

        for ( Entry<String, List<String>> param : params.entrySet() ) {
            if ( ( param.getValue() == null ) || ( param.getValue().size() == 0 ) ) {
                Identifier identifier = Identifier.from( param.getKey() );
                if ( identifier != null ) {
                    if ( identifiers == null ) {
                        identifiers = new ArrayList<Identifier>();
                    }
                    identifiers.add( identifier );
                }
            }
        }

        if ( ql != null ) {
            q = Query.fromQL( ql );
        }

        l = params.get( "filter" );
        if ( !isEmpty( l ) ) {
            q = newQueryIfNull( q );
            for ( String s : l ) {
                q.addFilter( s );
            }
        }

        l = params.get( "sort" );
        if ( !isEmpty( l ) ) {
            q = newQueryIfNull( q );
            for ( String s : l ) {
                q.addSort( s );
            }
        }

        if ( type != null ) {
            q = newQueryIfNull( q );
            q.setEntityType( type );
        }

        if ( connection != null ) {
            q = newQueryIfNull( q );
            q.setConnectionType( connection );
        }

        if ( permissions != null ) {
            q = newQueryIfNull( q );
            q.setPermissions( permissions );
        }

        if ( start != null ) {
            q = newQueryIfNull( q );
            q.setStartResult( start );
        }

        if ( cursor != null ) {
            q = newQueryIfNull( q );
            q.setCursor( cursor );
        }

        if ( limit != null ) {
            q = newQueryIfNull( q );
            q.setLimit( limit );
        }

        if ( startTime != null ) {
            q = newQueryIfNull( q );
            q.setStartTime( startTime );
        }

        if ( finishTime != null ) {
            q = newQueryIfNull( q );
            q.setFinishTime( finishTime );
        }

        if ( resolution != null ) {
            q = newQueryIfNull( q );
            q.setResolution( resolution );
        }

        if ( categories != null ) {
            q = newQueryIfNull( q );
            q.setCategories( categories );
        }

        if ( counterFilters != null ) {
            q = newQueryIfNull( q );
            q.setCounterFilters( counterFilters );
        }

        if ( pad != null ) {
            q = newQueryIfNull( q );
            q.setPad( pad );
        }

        if ( users != null ) {
            q = newQueryIfNull( q );
            q.setUsers( users );
        }

        if ( groups != null ) {
            q = newQueryIfNull( q );
            q.setGroups( groups );
        }

        if ( identifiers != null ) {
            q = newQueryIfNull( q );
            q.setIdentifiers( identifiers );
        }

        if ( reversed != null ) {
            q = newQueryIfNull( q );
            q.setReversed( reversed );
        }

        return q;
    }