All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.tinkerpop.blueprints.impls.sparksee.SparkseeEdge Maven / Gradle / Ivy

package com.tinkerpop.blueprints.impls.sparksee;

import com.tinkerpop.blueprints.Direction;
import com.tinkerpop.blueprints.Edge;
import com.tinkerpop.blueprints.Vertex;
import com.tinkerpop.blueprints.util.ExceptionFactory;
import com.tinkerpop.blueprints.util.StringFactory;

/**
 * {@link Edge} implementation for Sparksee.
 * 

* It computes "in vertex" and "out vertex" just when it is necessary. *

* Since edges are labeled, {@link #getLabel()} gets the same result as * {@link #getProperty(String)} if and only if the key is * {@link StringFactory#LABEL}. * * @author Sparsity * Technologies */ class SparkseeEdge extends SparkseeElement implements Edge { /** * In vertex. * * @see #setEdges() */ private long in = com.sparsity.sparksee.gdb.Objects.InvalidOID; /** * Out vertex. * * @see #setEdges() */ private long out = com.sparsity.sparksee.gdb.Objects.InvalidOID; /** * Sets in vertex and out vertex in case they have not been set before. */ private void setEdges() { if (in == com.sparsity.sparksee.gdb.Objects.InvalidOID || out == com.sparsity.sparksee.gdb.Objects.InvalidOID) { com.sparsity.sparksee.gdb.EdgeData edata = graph.getRawGraph().getEdgeData(oid); out = edata.getTail(); in = edata.getHead(); edata = null; } } /** * Creates a new instance. * * @param g SparkseeGraph. * @param oid Sparksee OID. */ protected SparkseeEdge(final SparkseeGraph g, final long oid) { super(g, oid); this.in = com.sparsity.sparksee.gdb.Objects.InvalidOID; this.out = com.sparsity.sparksee.gdb.Objects.InvalidOID; } /* * (non-Javadoc) * * @see com.tinkerpop.blueprints.Edge#getVertex(Direction.OUT) */ @Override public Vertex getVertex(final Direction direction) { if (direction.equals(Direction.BOTH)) { throw ExceptionFactory.bothIsNotSupported(); } graph.autoStartTransaction(false); setEdges(); long vertexId = (direction.equals(Direction.OUT)) ? out : in; return new SparkseeVertex(graph, vertexId); } /* * (non-Javadoc) * * @see com.tinkerpop.blueprints.Edge#getLabel() */ @Override public String getLabel() { graph.autoStartTransaction(false); return getTypeLabel(); } public String toString() { graph.autoStartTransaction(false); return StringFactory.edgeString(this); } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy