Fix license header violations in yang-data-api
[yangtools.git] / yang / yang-data-api / src / main / java / org / opendaylight / yangtools / yang / data / api / ModifyAction.java
1 /*
2  * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.
3  *
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
7  */
8 package org.opendaylight.yangtools.yang.data.api;
9
10 import java.util.Arrays;
11
12 // TODO rename to ModifyOperation
13
14 /**
15  * http://tools.ietf.org/html/rfc6241#section-7.2
16  */
17 public enum ModifyAction {
18     MERGE, REPLACE, CREATE, DELETE, REMOVE, NONE;
19
20     public static ModifyAction fromXmlValue(String xmlNameOfAction) {
21         switch (xmlNameOfAction) {
22         case "merge":
23             return MERGE;
24         case "replace":
25             return REPLACE;
26         case "remove":
27             return REMOVE;
28         case "delete":
29             return DELETE;
30         case "create":
31             return CREATE;
32         case "none":
33             return NONE;
34         default:
35             throw new IllegalArgumentException("Unknown operation " + xmlNameOfAction + " available operations "
36                     + Arrays.toString(ModifyAction.values()));
37         }
38     }
39
40     public boolean isAsDefaultPermitted() {
41         boolean isPermitted = this == MERGE;
42         isPermitted |= this == REPLACE;
43         isPermitted |= this == NONE;
44         return isPermitted;
45     }
46
47     public boolean isOnElementPermitted() {
48         return this != NONE;
49     }
50
51 }