All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.sphere.sdk.jsonnodes.queries.JsonNodeQuery Maven / Gradle / Ivy

The newest version!
package io.sphere.sdk.jsonnodes.queries;

import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.JsonNode;
import io.sphere.sdk.expansion.ExpansionPathContainer;
import io.sphere.sdk.jsonnodes.expansion.JsonNodeExpansionModel;
import io.sphere.sdk.queries.MetaModelQueryDsl;
import io.sphere.sdk.queries.PagedQueryResult;
import io.sphere.sdk.queries.QueryPredicate;
import io.sphere.sdk.queries.QuerySort;

import java.util.List;
import java.util.function.Function;

public interface JsonNodeQuery extends MetaModelQueryDsl> {
    /**
     * Creates a container which contains the full Java type information to deserialize the query result (NOT this class) from JSON.
     *
     * @see io.sphere.sdk.json.SphereJsonUtils#readObject(byte[], TypeReference)
     * @see io.sphere.sdk.json.SphereJsonUtils#readObject(String, TypeReference)
     * @see io.sphere.sdk.json.SphereJsonUtils#readObject(com.fasterxml.jackson.databind.JsonNode, TypeReference)
     * @see io.sphere.sdk.json.SphereJsonUtils#readObjectFromResource(String, TypeReference)
     *
     * @return type reference
     */
    static TypeReference> resultTypeReference() {
        return new TypeReference>() {
            @Override
            public String toString() {
                return "TypeReference>";
            }
        };
    }

    static JsonNodeQuery of(final String path) {
        return new JsonNodeQueryImpl(path);
    }

    @Override
    JsonNodeQuery plusPredicates(final Function> jsonNodeQueryModelQueryPredicateFunction);

    @Override
    JsonNodeQuery plusPredicates(final QueryPredicate queryPredicate);

    @Override
    JsonNodeQuery plusPredicates(final List> queryPredicates);

    @Override
    JsonNodeQuery plusSort(final List> sort);

    @Override
    JsonNodeQuery plusSort(final QuerySort sort);

    @Override
    JsonNodeQuery plusSort(final Function> jsonNodeQueryModelQuerySortFunction);

    @Override
    JsonNodeQuery withPredicates(final Function> jsonNodeQueryModelQueryPredicateFunction);

    @Override
    JsonNodeQuery withPredicates(final QueryPredicate queryPredicate);

    @Override
    JsonNodeQuery withPredicates(final List> queryPredicates);

    @Override
    JsonNodeQuery withSort(final List> sort);

    @Override
    JsonNodeQuery withSort(final QuerySort sort);

    @Override
    JsonNodeQuery withSort(final Function> jsonNodeQueryModelQuerySortFunction);

    @Override
    JsonNodeQuery withSortMulti(final Function>> sortFunction);

    @Override
    JsonNodeQuery plusExpansionPaths(final Function, ExpansionPathContainer> m);

    @Override
    JsonNodeQuery withExpansionPaths(final Function, ExpansionPathContainer> m);

    @Override
    JsonNodeQuery withFetchTotal(final boolean fetchTotal);

    @Override
    JsonNodeQuery withLimit(final Long limit);

    @Override
    JsonNodeQuery withOffset(final Long offset);
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy