2 * Copyright (c) 2013 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
8 package org.opendaylight.controller.yang2sources.plugin;
12 import com.google.common.base.Preconditions;
15 * Base complex configuration arguments
17 public abstract class ConfigArg {
18 public static final String CODE_GEN_DEFAULT_DIR = "code-generator-files/";
19 public static final String RESOURCE_GEN_DEFAULT_DIR = "resource-generator-files/";
21 protected File outputBaseDir;
23 public ConfigArg(File outputBaseDir) {
24 this.outputBaseDir = outputBaseDir;
30 public File getOutputBaseDir() {
34 public abstract void check();
37 * Configuration argument for resource generator class and output directory.
39 public static final class ResourceProviderArg extends ConfigArg {
40 private String resourceProviderClass;
42 public ResourceProviderArg() {
45 public ResourceProviderArg(String resourceProviderClass) {
46 this(resourceProviderClass, new File(RESOURCE_GEN_DEFAULT_DIR));
49 public ResourceProviderArg(String resourceProviderClass,
52 this.resourceProviderClass = resourceProviderClass;
58 .checkNotNull(resourceProviderClass,
59 "resourceProviderClass for ResourceProvider cannot be null");
62 public String getResourceProviderClass() {
63 return resourceProviderClass;
68 * Configuration argument for code generator class and output directory.
70 public static final class CodeGeneratorArg extends ConfigArg {
71 private String codeGeneratorClass;
73 public CodeGeneratorArg() {
74 super(new File(CODE_GEN_DEFAULT_DIR));
77 public CodeGeneratorArg(String codeGeneratorClass) {
78 this(codeGeneratorClass, new File(CODE_GEN_DEFAULT_DIR));
81 public CodeGeneratorArg(String codeGeneratorClass, File outputBaseDir) {
83 this.codeGeneratorClass = codeGeneratorClass;
88 Preconditions.checkNotNull(codeGeneratorClass,
89 "codeGeneratorClass for CodeGenerator cannot be null");
92 public String getCodeGeneratorClass() {
93 return codeGeneratorClass;