Renamed yang-to-sources-plugin to maven-yang-plugin.
[controller.git] / opendaylight / sal / yang-prototype / code-generator / maven-yang-plugin / src / main / java / org / opendaylight / controller / yang2sources / plugin / ConfigArg.java
diff --git a/opendaylight/sal/yang-prototype/code-generator/maven-yang-plugin/src/main/java/org/opendaylight/controller/yang2sources/plugin/ConfigArg.java b/opendaylight/sal/yang-prototype/code-generator/maven-yang-plugin/src/main/java/org/opendaylight/controller/yang2sources/plugin/ConfigArg.java
new file mode 100644 (file)
index 0000000..f6602e6
--- /dev/null
@@ -0,0 +1,88 @@
+/*
+ * 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.yang2sources.plugin;
+
+import java.io.File;
+
+import com.google.common.base.Preconditions;
+
+/**
+ * Complex configuration arguments
+ */
+public abstract class ConfigArg {
+
+    protected File outputBaseDir;
+
+    public ConfigArg(File outputBaseDir) {
+        this.outputBaseDir = outputBaseDir;
+    }
+
+    public ConfigArg() {
+    }
+
+    public File getOutputBaseDir() {
+        return outputBaseDir;
+    }
+
+    public abstract void check();
+
+    public static final class ResourceProviderArg extends ConfigArg {
+        private String resourceProviderClass;
+
+        public ResourceProviderArg() {
+        }
+
+        public ResourceProviderArg(String resourceProviderClass,
+                File outputBaseDir) {
+            super(outputBaseDir);
+            this.resourceProviderClass = resourceProviderClass;
+        }
+
+        @Override
+        public void check() {
+            Preconditions
+                    .checkNotNull(resourceProviderClass,
+                            "resourceProviderClass for ResourceProvider cannot be null");
+            Preconditions.checkNotNull(outputBaseDir,
+                    "outputBaseDir for ResourceProvider cannot be null, "
+                            + resourceProviderClass);
+        }
+
+        public String getResourceProviderClass() {
+            return resourceProviderClass;
+        }
+    }
+
+    /**
+     * Transfer object for code generator class and output directory.
+     */
+    public static final class CodeGeneratorArg extends ConfigArg {
+        private String codeGeneratorClass;
+
+        public CodeGeneratorArg() {
+        }
+
+        public CodeGeneratorArg(String codeGeneratorClass, File outputBaseDir) {
+            super(outputBaseDir);
+            this.codeGeneratorClass = codeGeneratorClass;
+        }
+
+        @Override
+        public void check() {
+            Preconditions.checkNotNull(codeGeneratorClass,
+                    "codeGeneratorClass for CodeGenerator cannot be null");
+            Preconditions.checkNotNull(outputBaseDir,
+                    "outputBaseDir for CodeGenerator cannot be null, "
+                            + codeGeneratorClass);
+        }
+
+        public String getCodeGeneratorClass() {
+            return codeGeneratorClass;
+        }
+    }
+}
\ No newline at end of file