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

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

There is a newer version: 2.9.0
Show 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 WriteContext {

    /**
     * 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();

    /**
     * Set the value a the given path
     *
     * @param path      path to set
     * @param newValue  new value
     * @param filters   filters
     * @return a document context
     */
    DocumentContext set(String path, Object newValue, Predicate... filters);

    /**
     * Set the value a the given path
     *
     * @param path      path to set
     * @param newValue  new value
     * @return a document context
     */
    DocumentContext set(JsonPath path, Object newValue);

    /**
     * Replaces the value on the given path with the result of the {@link MapFunction}.
     *
     * @param path           path to be converted set
     * @param mapFunction    Converter object to be invoked
     * @param filters        filters
     * @return a document context
     */
    DocumentContext map(String path, MapFunction mapFunction, Predicate... filters);

    /**
     * Replaces the value on the given path with the result of the {@link MapFunction}.
     *
     * @param path           path to be converted set
     * @param mapFunction    Converter object to be invoked (or lambda:))
     * @return a document context
     */
    DocumentContext map(JsonPath path, MapFunction mapFunction);

    /**
     * Deletes the given path
     *
     * @param path    path to delete
     * @param filters filters
     * @return a document context
     */
    DocumentContext delete(String path, Predicate... filters);

    /**
     * Deletes the given path
     *
     * @param path    path to delete
     * @return a document context
     */
    DocumentContext delete(JsonPath path);

    /**
     * Add value to array
     *
     * 
     * 
     * List array = new ArrayList(){{
     *      add(0);
     *      add(1);
     * }};
     *
     * JsonPath.parse(array).add("$", 2);
     *
     * assertThat(array).containsExactly(0,1,2);
     * 
     * 
* * @param path path to array * @param value value to add * @param filters filters * @return a document context */ DocumentContext add(String path, Object value, Predicate... filters); /** * Add value to array at the given path * * @param path path to array * @param value value to add * @return a document context */ DocumentContext add(JsonPath path, Object value); /** * Add or update the key with a the given value at the given path * * @param path path to object * @param key key to add * @param value value of key * @param filters filters * @return a document context */ DocumentContext put(String path, String key, Object value, Predicate... filters); /** * Add or update the key with a the given value at the given path * * @param path path to array * @param key key to add * @param value value of key * @return a document context */ DocumentContext put(JsonPath path, String key, Object value); /** * Renames the last key element of a given path. * @param path The path to the old key. Should be resolved to a map * or an array including map items. * @param oldKeyName The old key name. * @param newKeyName The new key name. * @param filters filters. * @return a document content. */ DocumentContext renameKey(String path, String oldKeyName, String newKeyName, Predicate... filters); /** * Renames the last key element of a given path. * @param path The path to the old key. Should be resolved to a map * or an array including map items. * @param oldKeyName The old key name. * @param newKeyName The new key name. * @return a document content. */ DocumentContext renameKey(JsonPath path, String oldKeyName, String newKeyName); }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy