Package com.buschmais.jqassistant.core.store.impl

Source Code of com.buschmais.jqassistant.core.store.impl.GraphDbStore

package com.buschmais.jqassistant.core.store.impl;

import com.buschmais.xo.api.XOManager;
import com.buschmais.xo.api.XOManagerFactory;
import com.buschmais.xo.api.bootstrap.XO;
import com.buschmais.xo.api.bootstrap.XOUnit;
import com.buschmais.xo.api.bootstrap.XOUnitBuilder;
import com.buschmais.xo.neo4j.api.Neo4jXOProvider;
import org.neo4j.graphdb.GraphDatabaseService;
import org.neo4j.kernel.GraphDatabaseAPI;

import java.net.URISyntaxException;
import java.util.Collection;

/**
* {@link com.buschmais.jqassistant.core.store.api.Store} implementation using an existing {@link org.neo4j.graphdb.GraphDatabaseService} instance.
*/
public class GraphDbStore extends AbstractGraphStore {

    /**
     * The {@link org.neo4j.graphdb.GraphDatabaseService}.
     */
    private final GraphDatabaseService graphDatabaseService;

    /**
     * Constructor.
     *
     * @param graphDatabaseService The {@link org.neo4j.graphdb.GraphDatabaseService}.
     */
    public GraphDbStore(GraphDatabaseService graphDatabaseService) {
        this.graphDatabaseService = graphDatabaseService;
    }

    @Override
    protected GraphDatabaseAPI getDatabaseAPI(XOManager xoManager) {
        return (GraphDatabaseAPI) graphDatabaseService;
    }

    @Override
    protected XOManagerFactory createXOManagerFactory(Collection<Class<?>> types) {
        XOUnit xoUnit;
        try {
            xoUnit = XOUnitBuilder.create("graphDb:///", Neo4jXOProvider.class, types.toArray(new Class<?>[0])).property(GraphDatabaseService.class.getName(), graphDatabaseService).create();
        } catch (URISyntaxException e) {
            throw new IllegalStateException("Cannot create graph store", e);
        }
        return XO.createXOManagerFactory(xoUnit);
    }

    @Override
    protected void closeXOManagerFactory(XOManagerFactory xoManagerFactory) {
        xoManagerFactory.close();
    }

}
TOP

Related Classes of com.buschmais.jqassistant.core.store.impl.GraphDbStore

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.