package com.thinkaurelius.faunus.formats.titan; import com.thinkaurelius.titan.core.TitanFactory; import com.tinkerpop.blueprints.Graph; import org.apache.commons.configuration.BaseConfiguration; import org.apache.hadoop.conf.Configuration; import java.util.Iterator; import java.util.Map; /** * Converts a Faunus/Hadoop configuration file to a Titan configuration file. * For all Titan specific properties, the conversion chomps the Faunus prefix and provides to Titan's graph factory. * * @author Marko A. Rodriguez (http://markorodriguez.com) */ public class GraphFactory { public static Graph generateGraph(final Configuration config, final String prefix) { return TitanFactory.open(generateTitanConfiguration(config, prefix)); } public static BaseConfiguration generateTitanConfiguration(final Configuration config, final String prefix) { final BaseConfiguration titanconfig = new BaseConfiguration(); final Iterator<Map.Entry<String, String>> itty = config.iterator(); while (itty.hasNext()) { final Map.Entry<String, String> entry = itty.next(); final String key = entry.getKey(); final String value = entry.getValue(); titanconfig.setProperty(key, value); if (key.startsWith(prefix)) { titanconfig.setProperty(key.substring(prefix.length() + 1), value); } } return titanconfig; } }