2 * Copyright (c) 2015, 2017 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
9 package org.opendaylight.controller.config.facade.xml.mapping.config;
11 import org.opendaylight.controller.config.facade.xml.exception.OperationNotPermittedException;
12 import org.opendaylight.controller.config.facade.xml.strategy.EditConfigStrategy;
13 import org.opendaylight.controller.config.facade.xml.strategy.EditStrategyType;
14 import org.opendaylight.controller.config.facade.xml.strategy.MissingInstanceHandlingStrategy;
15 import org.opendaylight.controller.config.facade.xml.strategy.NoneEditConfigStrategy;
16 import org.slf4j.Logger;
17 import org.slf4j.LoggerFactory;
19 public class ModuleElementDefinition {
21 public static final NoneEditConfigStrategy NONE_EDIT_CONFIG_STRATEGY = new NoneEditConfigStrategy();
22 public static final MissingInstanceHandlingStrategy MISSING_INSTANCE_HANDLING_STRATEGY =
23 new MissingInstanceHandlingStrategy();
25 private final String instanceName;
26 private final EditStrategyType editStrategy;
27 private static final Logger LOG = LoggerFactory.getLogger(ModuleElementDefinition.class);
29 public ModuleElementDefinition(final String instanceName, final String currentStrategy,
30 final EditStrategyType defaultStrategy) {
31 this.instanceName = instanceName;
32 if (currentStrategy == null || currentStrategy.isEmpty()) {
33 this.editStrategy = defaultStrategy;
35 EditStrategyType edStrategy = null;
37 edStrategy = InstanceConfigElementResolved.parseStrategy(currentStrategy, defaultStrategy);
38 } catch (final OperationNotPermittedException e) {
39 edStrategy = defaultStrategy;
41 "Operation not permitted on current strategy {} while default strategy "
42 + "is {}. Element definition strategy set to default.",
43 currentStrategy, defaultStrategy, e);
45 this.editStrategy = edStrategy;
50 public String getInstanceName() {
54 public EditConfigStrategy getEditStrategy() {
55 switch (editStrategy) {
59 return NONE_EDIT_CONFIG_STRATEGY;
61 return MISSING_INSTANCE_HANDLING_STRATEGY;