/* * SSSync, a Simple and Stupid Synchronizer for data with multi-valued attributes * Copyright (C) 2014 Ludovic Pouzenc * * This file is part of SSSync. * * SSSync is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * SSSync is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with SSSync. If not, see */ package conf; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.text.ParseException; import org.yaml.snakeyaml.Yaml; import org.yaml.snakeyaml.constructor.Constructor; /** * TODO javadoc * * @author lpouzenc */ public class SSSyncConfParser { public static ConfigRootBean loadMainConfig(String mainConfigFile) throws FileNotFoundException, ParseException { Yaml yamlMain = new Yaml(new Constructor(ConfigRootBean.class)); //TODO : try to prevent weird exceptions when config is not respecting the implicit grammar of the bean tree ConfigRootBean confMain = (ConfigRootBean) yamlMain.load(new FileInputStream(mainConfigFile)); if ( confMain == null || confMain.getGlobals() == null ) { throw new ParseException("Config parser has returned a null item", 0); } // TODO : check config sanity and completeness return confMain; } public static ConfigConnectionsBean loadConnConfig(String connConfigFile) throws FileNotFoundException, ParseException { Yaml yamlConn = new Yaml(new Constructor(ConfigConnectionsBean.class)); ConfigConnectionsBean confConn = (ConfigConnectionsBean) yamlConn.load(new FileInputStream(connConfigFile)); if ( confConn == null ) { throw new ParseException("Config parser has return a null item", 0); } return confConn; } }