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

com.jayway.jsonpath.ReadContext Maven / Gradle / Ivy

The newest version!
/*
 * Copyright 2011 the original author or authors.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *       http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.jayway.jsonpath;

public interface ReadContext {

    /**
     * Returns the configuration used for reading
     *
     * @return an immutable configuration
     */
    Configuration configuration();

    /**
     * Returns the JSON model that this context is operating on
     *
     * @return json model
     */
     T json();

    /**
     * Returns the JSON model that this context is operating on as a JSON string
     *
     * @return json model as string
     */
    String jsonString();

    /**
     * Reads the given path from this context
     *
     * @param path    path to read
     * @param filters filters
     * @param 
     * @return result
     */
     T read(String path, Predicate... filters);

    /**
     * Reads the given path from this context
     *
     * @param path    path to read
     * @param type    expected return type (will try to map)
     * @param filters filters
     * @param 
     * @return result
     */
     T read(String path, Class type, Predicate... filters);

    /**
     * Reads the given path from this context
     *
     * @param path path to apply
     * @param 
     * @return result
     */
     T read(JsonPath path);

    /**
     * Reads the given path from this context
     *
     * @param path path to apply
     * @param type    expected return type (will try to map)
     * @param 
     * @return result
     */
     T read(JsonPath path, Class type);

    /**
     * Reads the given path from this context
     *
     * Sample code to create a TypeRef
     * 
     *       TypeRef ref = new TypeRef>() {};
     * 
     *
     * @param path path to apply
     * @param typeRef  expected return type (will try to map)
     * @param 
     * @return result
     */
     T read(JsonPath path, TypeRef typeRef);

    /**
     * Reads the given path from this context
     *
     * Sample code to create a TypeRef
     * 
     *       TypeRef ref = new TypeRef>() {};
     * 
     *
     * @param path path to apply
     * @param typeRef  expected return type (will try to map)
     * @param 
     * @return result
     */
     T read(String path, TypeRef typeRef);

    /**
     * Stops evaluation when maxResults limit has been reached
     * @param maxResults
     * @return the read context
     */
    ReadContext limit(int maxResults);

    /**
     * Adds listener to the evaluation of this path
     * @param listener listeners to add
     * @return the read context
     */
    ReadContext withListeners(EvaluationListener... listener);


    /**
     * Reads the given path from this context and returns the root object, every object from the root to the leaf will be matched
     *
     * @param paths array of paths to read
     * @param type expected return type (will try to map)
     * @param filters filters
     * @param 
     * @return result
     */
    Object readRoot(String[] paths, Predicate... filters);


}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy