summaryrefslogtreecommitdiffstats
path: root/configgen
diff options
context:
space:
mode:
authorBjørn Christian Seime <bjorncs@yahoo-inc.com>2017-06-19 12:49:17 +0200
committerBjørn Christian Seime <bjorncs@yahoo-inc.com>2017-06-19 14:42:31 +0200
commit89d9cf538fa4e81bdab33d4fe1f9d2aff94c92db (patch)
tree58d1815233940d3a24b1e62b71d468f2a41074c4 /configgen
parentac1d2c4f7512f5372b7e4ce91a34e46f63a71a97 (diff)
Refactor logic for generating config into separate method
Diffstat (limited to 'configgen')
-rw-r--r--configgen/src/main/java/com/yahoo/config/codegen/MakeConfig.java51
1 files changed, 29 insertions, 22 deletions
diff --git a/configgen/src/main/java/com/yahoo/config/codegen/MakeConfig.java b/configgen/src/main/java/com/yahoo/config/codegen/MakeConfig.java
index b642d490735..b2c19f26b5f 100644
--- a/configgen/src/main/java/com/yahoo/config/codegen/MakeConfig.java
+++ b/configgen/src/main/java/com/yahoo/config/codegen/MakeConfig.java
@@ -1,16 +1,17 @@
// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.config.codegen;
-import java.io.*;
-import java.util.logging.Logger;
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileReader;
+import java.io.IOException;
+import java.io.PrintStream;
/**
* This class generates code for a config class from a given def-file.
*/
public class MakeConfig {
- private final static Logger log = Logger.getLogger(MakeConfig.class.getName());
-
private final ClassBuilder classBuilder;
public MakeConfig(InnerCNode root, NormalizedDefinition nd, String path, MakeConfigProperties properties) {
@@ -24,6 +25,28 @@ public class MakeConfig {
return new JavaClassBuilder(root, nd, prop.destDir);
}
+ public static boolean makeConfig(MakeConfigProperties properties) throws FileNotFoundException {
+ for (File specFile : properties.specFiles) {
+ String path = specFile.toURI().toString();
+ String name = specFile.getName();
+ if (name.endsWith(".def")) name = name.substring(0, name.length() - 4);
+ DefParser parser = new DefParser(name, new FileReader(specFile));
+ InnerCNode configRoot = parser.getTree();
+ checkNamespace(name, configRoot);
+ if (configRoot != null) {
+ MakeConfig mc = new MakeConfig(configRoot, parser.getNormalizedDefinition(), path, properties);
+ mc.buildClasses();
+ if (properties.dumpTree) {
+ System.out.println("\nTree dump:");
+ DefParser.dumpTree(configRoot, "");
+ }
+ } else {
+ return false;
+ }
+ }
+ return true;
+ }
+
/**
* Generates the code and print it to this.out.
*/
@@ -39,24 +62,8 @@ public class MakeConfig {
public static void main(String[] args) throws IOException, InterruptedException {
try {
MakeConfigProperties props = new MakeConfigProperties();
- for (File specFile : props.specFiles) {
- String path = specFile.toURI().toString();
- String name = specFile.getName();
- if (name.endsWith(".def")) name = name.substring(0, name.length() - 4);
- DefParser parser = new DefParser(name, new FileReader(specFile));
- InnerCNode configRoot = parser.getTree();
- checkNamespace(name, configRoot);
- if (configRoot != null) {
- MakeConfig mc = new MakeConfig(configRoot, parser.getNormalizedDefinition(), path, props);
- mc.buildClasses();
- if (props.dumpTree) {
- System.out.println("\nTree dump:");
- DefParser.dumpTree(configRoot, "");
- }
- } else {
- System.exit(1);
- }
- }
+ boolean success = makeConfig(props);
+ if (!success) System.exit(1);
} catch (PropertyException e) {
System.out.println(Exceptions.toMessageString(e));
printUsage(System.err);