blob: 5709f0334b7d5d02ff816c319bba70b1e1ea5b1d [file] [log] [blame]
Jonathan Hartb7e3d2c2013-01-15 18:45:19 -08001package net.floodlightcontroller.linkdiscovery.internal;
2
3import java.util.Set;
4
5import com.thinkaurelius.titan.core.TitanGraph;
6import com.tinkerpop.blueprints.TransactionalGraph.Conclusion;
7import com.tinkerpop.blueprints.Vertex;
8
9/**
Jonathan Hartc86a2ea2013-01-15 22:39:42 -080010 * Seam that allows me to set up a testable instance of LinkStorageImpl that
Jonathan Hart627f10c2013-01-16 14:20:03 -080011 * writes to a file database rather than a Cassandra cluster.
12 * It seems the init() API on LinkStorageImpl might change so I won't rely
13 * on it yet.
Jonathan Hartb7e3d2c2013-01-15 18:45:19 -080014 *
15 * @author jono
16 *
17 */
18
Jonathan Hartc86a2ea2013-01-15 22:39:42 -080019public class TestableLinkStorageImpl extends LinkStorageImpl {
HIGUCHI Yutadfdd4182013-06-11 17:00:39 -070020 protected TitanGraph graph;
Jonathan Hartb7e3d2c2013-01-15 18:45:19 -080021
Jonathan Hartc86a2ea2013-01-15 22:39:42 -080022 public TestableLinkStorageImpl(TitanGraph graph){
Jonathan Hartb7e3d2c2013-01-15 18:45:19 -080023 this.graph = graph;
24 }
25
26 @Override
27 public void init(String conf){
28 Set<String> s = graph.getIndexedKeys(Vertex.class);
29 if (!s.contains("dpid")) {
30 graph.createKeyIndex("dpid", Vertex.class);
31 graph.stopTransaction(Conclusion.SUCCESS);
32 }
33 if (!s.contains("type")) {
34 graph.createKeyIndex("type", Vertex.class);
35 graph.stopTransaction(Conclusion.SUCCESS);
36 }
37
38 }
39}