Package com.thinkaurelius.faunus.formats.titan

Source Code of com.thinkaurelius.faunus.formats.titan.FaunusTitanGraph

package com.thinkaurelius.faunus.formats.titan;

import com.thinkaurelius.faunus.FaunusVertex;
import com.thinkaurelius.titan.diskstorage.keycolumnvalue.Entry;
import com.thinkaurelius.titan.diskstorage.util.StaticByteBuffer;
import com.thinkaurelius.titan.graphdb.configuration.GraphDatabaseConfiguration;
import com.thinkaurelius.titan.graphdb.database.StandardTitanGraph;
import com.thinkaurelius.titan.graphdb.transaction.StandardTitanTx;
import com.thinkaurelius.titan.graphdb.transaction.StandardTransactionBuilder;
import org.apache.commons.configuration.Configuration;

import java.nio.ByteBuffer;

/**
* The backend agnostic Titan graph reader for pulling a graph of Titan and into Faunus.
*
* @author Matthias Broecheler (me@matthiasb.com)
* @author Marko A. Rodriguez (marko@markorodriguez.com)
*/

public class FaunusTitanGraph extends StandardTitanGraph {

    private final StandardTitanTx tx; /* it's only for reading a Titan graph into Hadoop. */

    public FaunusTitanGraph(final Configuration configuration) {
        this(configuration, true);
    }

    public FaunusTitanGraph(final Configuration configuration, boolean autoTx) {
        super(new GraphDatabaseConfiguration(configuration));

        //Used to be TranscationConfig(this.getConfiguration, false) indicating that this is not threadBound
        //which is the defaul for Transaction
        this.tx = (autoTx) ? newTransaction(new StandardTransactionBuilder(this.getConfiguration(), this)) : null;
    }

    protected FaunusVertex readFaunusVertex(final ByteBuffer key, Iterable<Entry> entries) {
        final FaunusVertexLoader loader = new FaunusVertexLoader(new StaticByteBuffer(key));
        for (final Entry data : entries) {
            try {
                final FaunusVertexLoader.RelationFactory factory = loader.getFactory();
                super.edgeSerializer.readRelation(factory,data,tx);
                factory.build();
            } catch (Exception e) {
                //  TODO: log exception
            }
        }
        return loader.getVertex();
    }

    @Override
    public void shutdown() {
        if (this.tx != null)
            this.tx.rollback();
        super.shutdown();
    }

}
TOP

Related Classes of com.thinkaurelius.faunus.formats.titan.FaunusTitanGraph

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.