Package com.buschmais.cdo.neo4j.api

Source Code of com.buschmais.cdo.neo4j.api.Neo4jCdoProvider

package com.buschmais.cdo.neo4j.api;

import com.buschmais.cdo.neo4j.impl.datastore.EmbeddedNeo4jDatastore;
import com.buschmais.cdo.neo4j.impl.datastore.RestNeo4jDatastore;
import com.buschmais.cdo.spi.bootstrap.CdoDatastoreProvider;
import com.buschmais.cdo.api.bootstrap.CdoUnit;
import com.buschmais.cdo.spi.datastore.Datastore;
import org.neo4j.graphdb.GraphDatabaseService;
import org.neo4j.graphdb.factory.GraphDatabaseFactory;

import java.net.URL;

public class Neo4jCdoProvider implements CdoDatastoreProvider {

    @Override
    public Datastore<?, ?, ?> createDatastore(CdoUnit cdoUnit) {
        URL url = cdoUnit.getUrl();
        String protocol = url.getProtocol().toLowerCase();
        if ("file".equals(protocol)) {
            GraphDatabaseService graphDatabaseService = new GraphDatabaseFactory().newEmbeddedDatabase(url.getPath());
            return new EmbeddedNeo4jDatastore(graphDatabaseService);
        } else if ("http".equals(protocol) || "https".equals(protocol)) {
            return new RestNeo4jDatastore(url.toExternalForm());
        }
        return null;
    }
}
TOP

Related Classes of com.buschmais.cdo.neo4j.api.Neo4jCdoProvider

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.