ibessonov commented on a change in pull request #208:
URL: https://github.com/apache/ignite-3/pull/208#discussion_r670398668



##########
File path: 
modules/configuration-api/src/main/java/org/apache/ignite/configuration/NamedListChange.java
##########
@@ -20,37 +20,71 @@
 import java.util.function.Consumer;
 
 /** */
-public interface NamedListChange<Change> {
+public interface NamedListChange<Change> extends NamedListView<Change> {
     /**
-     * Update the value in named list configuration.
+     * Create new value in named list configuration.
      *
      * @param key Key for the value to be created.
      * @param valConsumer Closure to modify value associated with the key. 
Object of type {@code T},
      *      passed to the closure, must not be reused anywhere else.
      * @return {@code this} for chaining.
+     *
+     * @throws NullPointerException If one of parameters is null.
+     * @throws IllegalArgumentException If element with given name already 
exists.
      */
-    //TODO Replace with "createOrUpdate"
     NamedListChange<Change> create(String key, Consumer<Change> valConsumer);
 
     /**
-     * Update the value in named list configuration.
+     * Create new value in named list configuration.
+     *
+     * @param index Elements insertion index.
+     * @param key Key for the value to be created.
+     * @param valConsumer Closure to modify value associated with the key. 
Object of type {@code T},
+     *      passed to the closure, must not be reused anywhere else.
+     * @return {@code this} for chaining.
+     *
+     * @throws NullPointerException If one of parameters is null.
+     * @throws IndexOutOfBoundsException If index cannot be used for new 
element insertion.
+     * @throws IllegalArgumentException If element with given name already 
exists.
+     */
+    NamedListChange<Change> create(int index, String key, Consumer<Change> 
valConsumer);
+
+    /**
+     * Create new value in named list configuration.
+     *
+     * @param base Name of th preceeding element.
+     * @param key Key for the value to be created.
+     * @param valConsumer Closure to modify value associated with the key. 
Object of type {@code T},
+     *      passed to the closure, must not be reused anywhere else.
+     * @return {@code this} for chaining.
+     *
+     * @throws NullPointerException If one of parameters is null.
+     * @throws IllegalArgumentException If element with given name already 
exists
+     *      or if {@code base} element doesn't exist.
+     */
+    NamedListChange<Change> createAfter(String base, String key, 
Consumer<Change> valConsumer);

Review comment:
       Good




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to