Equals/HashCode/StringBuilder removal from Supported/PeerBandwidth
[controller.git] / opendaylight / sal / yang-prototype / code-generator / maven-yang-plugin / src / main / java / org / opendaylight / controller / yang2sources / plugin / ConfigArg.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 package org.opendaylight.controller.yang2sources.plugin;
9
10 import java.io.File;
11
12 import com.google.common.base.Preconditions;
13
14 /**
15  * Base complex configuration arguments
16  */
17 public abstract class ConfigArg {
18
19     protected File outputBaseDir;
20
21     public ConfigArg(File outputBaseDir) {
22         this.outputBaseDir = outputBaseDir;
23     }
24
25     public ConfigArg() {
26     }
27
28     public File getOutputBaseDir() {
29         return outputBaseDir;
30     }
31
32     public abstract void check();
33
34     /**
35      * Configuration argument for resource generator class and output directory.
36      */
37     public static final class ResourceProviderArg extends ConfigArg {
38         private String resourceProviderClass;
39
40         public ResourceProviderArg() {
41         }
42
43         public ResourceProviderArg(String resourceProviderClass) {
44             this(resourceProviderClass, new File("outDir/"));
45         }
46
47         public ResourceProviderArg(String resourceProviderClass,
48                 File outputBaseDir) {
49             super(outputBaseDir);
50             this.resourceProviderClass = resourceProviderClass;
51         }
52
53         @Override
54         public void check() {
55             Preconditions
56                     .checkNotNull(resourceProviderClass,
57                             "resourceProviderClass for ResourceProvider cannot be null");
58         }
59
60         public String getResourceProviderClass() {
61             return resourceProviderClass;
62         }
63     }
64
65     /**
66      * Configuration argument for code generator class and output directory.
67      */
68     public static final class CodeGeneratorArg extends ConfigArg {
69         private String codeGeneratorClass;
70
71         public CodeGeneratorArg() {
72         }
73
74         public CodeGeneratorArg(String codeGeneratorClass) {
75             this(codeGeneratorClass, new File("outDir/"));
76         }
77
78         public CodeGeneratorArg(String codeGeneratorClass, File outputBaseDir) {
79             super(outputBaseDir);
80             this.codeGeneratorClass = codeGeneratorClass;
81         }
82
83         @Override
84         public void check() {
85             Preconditions.checkNotNull(codeGeneratorClass,
86                     "codeGeneratorClass for CodeGenerator cannot be null");
87         }
88
89         public String getCodeGeneratorClass() {
90             return codeGeneratorClass;
91         }
92     }
93 }