2 * Copyright (c) 2019 PANTHEON.tech, s.r.o. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
8 package org.opendaylight.genius.utils.batching;
10 import static java.util.Objects.requireNonNull;
12 import org.eclipse.jdt.annotation.NonNull;
13 import org.opendaylight.yangtools.concepts.Identifier;
14 import org.opendaylight.yangtools.yang.binding.DataObject;
15 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
18 * Utility class for creating ActionableResource instances.
20 public final class ActionableResources {
21 private ActionableResources() {
25 public static <T extends DataObject> @NonNull ActionableResource create(final InstanceIdentifier<T> path,
27 return new ActionableResourceImpl(path, ActionableResource.CREATE, requireNonNull(data), null);
30 public static <T extends DataObject> @NonNull ActionableResource create(final Identifier identifier,
31 final InstanceIdentifier<T> path, final T data) {
32 return new ActionableResourceImpl(identifier, path, ActionableResource.CREATE, requireNonNull(data), null);
35 public static <T extends DataObject> @NonNull ActionableResource update(final InstanceIdentifier<T> path,
37 return new ActionableResourceImpl(path, ActionableResource.UPDATE, requireNonNull(newData), null);
40 public static <T extends DataObject> @NonNull ActionableResource update(final Identifier identifier,
41 final InstanceIdentifier<T> path, final T newData, final T oldData) {
42 return new ActionableResourceImpl(identifier, path, ActionableResource.UPDATE, requireNonNull(newData),
46 public static @NonNull ActionableResource delete(final InstanceIdentifier<?> path) {
47 return new ActionableResourceImpl(path, ActionableResource.DELETE, null, null);
50 public static <T extends DataObject> @NonNull ActionableResource delete(final Identifier identifier,
51 final InstanceIdentifier<T> path, final T data) {
52 return new ActionableResourceImpl(identifier, path, ActionableResource.DELETE, data, null);
55 public static <T extends DataObject> @NonNull ActionableResource updateContainer(final
56 InstanceIdentifier<T> path, final T newData) {
57 return new ActionableResourceImpl(path, ActionableResource.UPDATECONTAINER, requireNonNull(newData),