package org.aksw.sparqlify.config.loader; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import org.aksw.sparqlify.config.lang.ConfigParser; import org.aksw.sparqlify.config.syntax.Config; import org.aksw.sparqlify.validation.LoggerCount; import org.antlr.runtime.RecognitionException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class ConfigFactory { private static final Logger logger = LoggerFactory .getLogger(ConfigFactory.class); private File configFile; /** * Static convenience method * * @param configFile * @return * @throws IOException * @throws RecognitionException */ public static Config create(File configFile) throws IOException, RecognitionException { ConfigFactory factory = new ConfigFactory(); factory.setConfigFile(configFile); Config result = factory.create(); return result; } public void setConfigFile(File configFile) { this.configFile = configFile; } public File getConfigFile() { return configFile; } public Config create() throws IOException, RecognitionException { if (!configFile.exists()) { logger.error("File does not exist: " + configFile.getAbsolutePath()); } LoggerCount loggerCount = new LoggerCount(logger); ConfigParser parser = new ConfigParser(); InputStream in = new FileInputStream(configFile); Config config; try { config = parser.parse(in, loggerCount); } finally { in.close(); } return config; } }