2 * Copyright (c) 2013 Cisco Systems, Inc. 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.yangtools.yang.data.api;
10 import java.util.Arrays;
13 * Edit operation, as defined by <a href="https://tools.ietf.org/html/rfc6241#section-7.2">RFC6241 section 7.2</a>.
15 // FIXME: 3.0.0: rename to EditOperation, consider remodeling to take into account MERGE/REPLACE/NONE versus
16 // CREATE/DELETE/REMOVE.
17 public enum ModifyAction {
18 MERGE(true), REPLACE(true), CREATE(false), DELETE(false), REMOVE(false), NONE(true, false);
20 public static ModifyAction fromXmlValue(final String xmlNameOfAction) {
21 switch (xmlNameOfAction) {
35 throw new IllegalArgumentException("Unknown operation " + xmlNameOfAction + " available operations "
36 + Arrays.toString(ModifyAction.values()));
40 private final boolean asDefaultPermitted;
41 private final boolean onElementPermitted;
43 ModifyAction(final boolean asDefaultPermitted, final boolean onElementPermitted) {
44 this.asDefaultPermitted = asDefaultPermitted;
45 this.onElementPermitted = onElementPermitted;
48 ModifyAction(final boolean asDefaultPermitted) {
49 this(asDefaultPermitted, true);
53 * Check if this operation is a candidate for {@code default-operation} argument.
55 * @return True if this operation can be used as {@code default-operation}.
57 // FIXME: 3.0.0: consider moving this somewhere else, or renaming it
58 public boolean isAsDefaultPermitted() {
59 return asDefaultPermitted;
62 public boolean isOnElementPermitted() {
63 return onElementPermitted;