
com.bigdata.blueprints.BigdataVertex Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of bigdata-blueprints Show documentation
Show all versions of bigdata-blueprints Show documentation
Blazegraph support for Tinkerpop 2.5
The newest version!
/**
Copyright (C) SYSTAP, LLC DBA Blazegraph 2006-2016. All rights reserved.
Contact:
SYSTAP, LLC DBA Blazegraph
2501 Calvert ST NW #106
Washington, DC 20008
[email protected]
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; version 2 of the License.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
package com.bigdata.blueprints;
import java.util.Arrays;
import java.util.Set;
import org.apache.log4j.Logger;
import org.openrdf.model.URI;
import com.tinkerpop.blueprints.Direction;
import com.tinkerpop.blueprints.Edge;
import com.tinkerpop.blueprints.Vertex;
import com.tinkerpop.blueprints.VertexQuery;
import com.tinkerpop.blueprints.util.DefaultVertexQuery;
/**
* Vertex implementation that wraps a Vertex URI and points to a
* {@link BigdataGraph} instance.
*
* @author mikepersonick
*
*/
public class BigdataVertex extends BigdataElement implements Vertex {
private static final transient Logger log = Logger.getLogger(BigdataVertex.class);
public BigdataVertex(final URI uri, final BigdataGraph graph) {
super(uri, graph);
}
@Override
public Object getId() {
if (log.isInfoEnabled())
log.info("");
return graph.factory.fromURI(uri);
}
@Override
public void remove() {
if (log.isInfoEnabled())
log.info("");
graph.removeVertex(this);
}
@Override
public Edge addEdge(final String label, final Vertex to) {
if (log.isInfoEnabled())
log.info("("+label+", "+to+")");
return graph.addEdge(null, this, to, label);
}
@Override
@SuppressWarnings("unchecked")
public Iterable getEdges(final Direction dir, final String... labels) {
if (log.isInfoEnabled())
log.info("("+dir+
(labels != null ? (", "+Arrays.toString(labels)) : "")
+")");
final URI wild = null;
try {
if (dir == Direction.OUT) {
return graph.getEdges(uri, wild, labels);
} else if (dir == Direction.IN) {
return graph.getEdges(wild, uri, labels);
} else {
return graph.fuse(
graph.getEdges(uri, wild, labels),
graph.getEdges(wild, uri, labels));
}
} catch (RuntimeException ex) {
throw ex;
} catch (Exception ex) {
throw new RuntimeException(ex);
}
}
@Override
@SuppressWarnings("unchecked")
public Iterable getVertices(final Direction dir, final String... labels) {
if (log.isInfoEnabled())
log.info("("+dir+
(labels != null ? (", "+Arrays.toString(labels)) : "")
+")");
final URI wild = null;
try {
if (dir == Direction.OUT) {
return graph.getVertices(uri, wild, labels);
} else if (dir == Direction.IN) {
return graph.getVertices(wild, uri, labels);
} else {
return graph.fuse(
graph.getVertices(uri, wild, labels),
graph.getVertices(wild, uri, labels));
}
} catch (RuntimeException ex) {
throw ex;
} catch (Exception ex) {
throw new RuntimeException(ex);
}
}
/**
* Not bothering to provide a SPARQL translation for vertex queries at
* this time. I suspect that scan and filter works fine when starting from
* an individual vertex.
*/
@Override
public VertexQuery query() {
if (log.isInfoEnabled())
log.info("");
return new DefaultVertexQuery(this);
}
@Override
public String toString() {
return "v["+uri.getLocalName()+"]";
}
@Override
public T getProperty(final String prop) {
if (log.isInfoEnabled())
log.info("("+prop+")");
return super.getProperty(prop);
}
@Override
public Set getPropertyKeys() {
if (log.isInfoEnabled())
log.info("");
return super.getPropertyKeys();
}
@Override
public T removeProperty(final String prop) {
if (log.isInfoEnabled())
log.info("("+prop+")");
return super.removeProperty(prop);
}
@Override
public void setProperty(final String prop, final Object val) {
if (log.isInfoEnabled())
log.info("("+prop+", "+val+")");
super.setProperty(prop, val);
}
// @Override
// public void addProperty(final String prop, final Object val) {
//
// if (log.isInfoEnabled())
// log.info("("+prop+", "+val+")");
//
// super.addProperty(prop, val);
//
// }
//
// @Override
// public List getProperties(final String prop) {
//
// if (log.isInfoEnabled())
// log.info("("+prop+")");
//
// return super.getProperties(prop);
//
// }
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy