Merge "Declare a urlPrefix for reuse in NorthboundIT."
[controller.git] / opendaylight / netconf / config-netconf-connector / src / main / java / org / opendaylight / controller / netconf / confignetconfconnector / mapping / config / ModuleElementDefinition.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
9 package org.opendaylight.controller.netconf.confignetconfconnector.mapping.config;
10
11 import org.opendaylight.controller.netconf.confignetconfconnector.operations.editconfig.EditConfigStrategy;
12 import org.opendaylight.controller.netconf.confignetconfconnector.operations.editconfig.EditStrategyType;
13 import org.opendaylight.controller.netconf.confignetconfconnector.operations.editconfig.MissingInstanceHandlingStrategy;
14 import org.opendaylight.controller.netconf.confignetconfconnector.operations.editconfig.NoneEditConfigStrategy;
15
16 public class ModuleElementDefinition {
17
18     public static final NoneEditConfigStrategy NONE_EDIT_CONFIG_STRATEGY = new NoneEditConfigStrategy();
19     public static final MissingInstanceHandlingStrategy MISSING_INSTANCE_HANDLING_STRATEGY = new MissingInstanceHandlingStrategy();
20
21     private final String instanceName;
22     private final EditStrategyType editStrategy;
23
24     public ModuleElementDefinition(String instanceName, String currentStrategy, EditStrategyType defaultStrategy) {
25         this.instanceName = instanceName;
26         if (currentStrategy == null || currentStrategy.isEmpty())
27             this.editStrategy = defaultStrategy;
28         else
29             this.editStrategy = InstanceConfigElementResolved.parseStrategy(currentStrategy, defaultStrategy);
30     }
31
32     public String getInstanceName() {
33         return instanceName;
34     }
35
36     public EditStrategyType getEditStrategyType() {
37         return editStrategy;
38     }
39
40     public EditConfigStrategy getEditStrategy() {
41         switch (editStrategy) {
42             case delete :
43             case remove :
44             case none : return NONE_EDIT_CONFIG_STRATEGY;
45             default : return MISSING_INSTANCE_HANDLING_STRATEGY;
46         }
47     }
48 }