Initial code drop of yang model driven configuration system
[controller.git] / opendaylight / config / yang-jmx-generator / src / main / java / org / opendaylight / controller / config / yangjmxgenerator / plugin / util / NameConflictException.java
diff --git a/opendaylight/config/yang-jmx-generator/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/util/NameConflictException.java b/opendaylight/config/yang-jmx-generator/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/util/NameConflictException.java
new file mode 100644 (file)
index 0000000..2ae7056
--- /dev/null
@@ -0,0 +1,41 @@
+/*
+ * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.opendaylight.controller.config.yangjmxgenerator.plugin.util;
+
+import org.opendaylight.yangtools.yang.common.QName;
+
+public class NameConflictException extends RuntimeException {
+
+    private static final String messageBlueprint = "Name conflict for name: %s, first defined in: %s, then defined in: %s";
+    private final String conflictingName;
+    private final QName secondParentQName;
+    private final QName firstParentQName;
+
+    public NameConflictException(String conflictingName,
+            QName firstDefinedParentQName, QName secondDefinedParentQName) {
+        super(String.format(messageBlueprint, conflictingName,
+                firstDefinedParentQName, secondDefinedParentQName));
+        this.conflictingName = conflictingName;
+        this.firstParentQName = firstDefinedParentQName;
+        this.secondParentQName = secondDefinedParentQName;
+    }
+
+    // TODO add yang local names
+
+    public String getConflictingName() {
+        return conflictingName;
+    }
+
+    public QName getSecondParentQName() {
+        return secondParentQName;
+    }
+
+    public QName getFirstParentQName() {
+        return firstParentQName;
+    }
+}