Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /* Copyright 2014 The Johns Hopkins University Applied Physics Laboratory
   *
   * Licensed under the Apache License, Version 2.0 (the "License");
   * you may not use this file except in compliance with the License.
   * You may obtain a copy of the License at
   *
   *     http://www.apache.org/licenses/LICENSE-2.0
   *
   * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
 package edu.jhuapl.tinkerpop.tables.core;
 
 import java.util.List;
 
 import  org.apache.hadoop.io.Text;
 
 
Wrapper around Vertex tables.
 
 public class VertexTableWrapper extends ElementTableWrapper {
 
   public VertexTableWrapper(GlobalInstances globals) {
     super(globalsglobals.getConfig().getVertexTableName());
   }

  
Write a vertex with the given id. Note: This does not currently write the vertex's properties.

Parameters:
vertex
 
   public void writeVertex(Vertex vertex) {
     Mutators.apply(getWriter(), new AddVertexMutator(vertex.getId().toString()));
     .checkedFlush();
   }

  
Remove the given vertex. Note: This uses a BatchDeleter rather than Mutator because it is more efficient.

Parameters:
vertex
 
   public void deleteVertex(Vertex vertex) {
     BatchDeleter deleter = null;
 
     try {
       deleter = getDeleter();
       deleter.setRanges(Arrays.asList(Range.exact((Stringvertex.getId())));
       deleter.delete();
 
     } catch (Exception e) {
       throw new AccumuloGraphException(e);
     } finally {
       if (deleter != null) {
         deleter.close();
       }
     }
   }

  
Write edge endpoint information to the vertex table.

Parameters:
edge
 
  public void writeEdgeEndpoints(Edge edge) {
    Mutators.apply(getWriter(), new EdgeEndpointsMutator.Add(edge));
  }
  public void deleteEdgeEndpoints(Edge edge) {
    Mutators.apply(getWriter(), new EdgeEndpointsMutator.Delete(edge));
  }
  public Iterable<EdgegetEdges(Vertex vertexDirection direction,
      String... labels) {
    Scanner scan = getScanner();
    scan.setRange(new Range(vertex.getId().toString()));
    if (direction.equals(.)) {
      scan.fetchColumnFamily(new Text(.));
    } else if (direction.equals(.)) {
      scan.fetchColumnFamily(new Text(.));
    } else {
      scan.fetchColumnFamily(new Text(.));
      scan.fetchColumnFamily(new Text(.));
    }
    if (labels.length > 0) {
      applyEdgeLabelValueFilter(scanlabels);
    }
    return new ScannerIterable<Edge>(scan) {
      @Override
      public Edge next(PeekingIterator<Entry<Key,Value>> iterator) {
        // TODO better use of information readily available...
        // TODO could also check local cache before creating a new
        // instance?
        Entry<Key,Valuekv = iterator.next();
        String[] parts = kv.getKey().getColumnQualifier().toString().split(.);
        String label = (new String(kv.getValue().get())).split(.)[1];
        AccumuloEdge edge;
        if (kv.getKey().getColumnFamily().toString().equalsIgnoreCase(.)) {
          edge = new AccumuloEdge(parts[1],
              new AccumuloVertex(kv.getKey().getRow().toString()),
              new AccumuloVertex(parts[0]), label);
        } else {
          edge = new AccumuloEdge(parts[1],
              new AccumuloVertex(parts[0]),
              new AccumuloVertex(kv.getKey().getRow().toString()), label);
        }
        .getCaches().cache(edgeEdge.class);
        return edge;
      }
    };
  }
  public Iterable<VertexgetVertices(Vertex vertexDirection directionString... labels) {
    Scanner scan = getScanner();
    scan.setRange(new Range(vertex.getId().toString()));
    if (direction.equals(.)) {
      scan.fetchColumnFamily(new Text(.));
    } else if (direction.equals(.)) {
      scan.fetchColumnFamily(new Text(.));
    } else {
      scan.fetchColumnFamily(new Text(.));
      scan.fetchColumnFamily(new Text(.));
    }
    if (labels != null && labels.length > 0) {
      applyEdgeLabelValueFilter(scanlabels);
    }
    return new ScannerIterable<Vertex>(scan) {
      @Override
      public Vertex next(PeekingIterator<Entry<Key,Value>> iterator) {
        // TODO better use of information readily available...
        // TODO could also check local cache before creating a new
        // instance?
        String[] parts = iterator.next().getKey().getColumnQualifier()
            .toString().split(.);
        AccumuloVertex vertex = new AccumuloVertex(parts[0]);
        .getCaches().cache(vertexVertex.class);
        return vertex;
      }
    };
  }
  public Iterable<VertexgetVertices() {
    Scanner scan = getScanner();
    scan.fetchColumnFamily(new Text(.));
    if (.getConfig().getPreloadedProperties() != null) {
      for (String key : .getConfig().getPreloadedProperties()) {
        scan.fetchColumnFamily(new Text(key));
      }
    }
    final VertexParser parser = new VertexParser();
    return new ScannerIterable<Vertex>(scan) {
      @Override
      public Vertex next(PeekingIterator<Entry<KeyValue>> iterator) {
        // TODO could also check local cache before creating a new instance?
        String rowId = iterator.peek().getKey().getRow().toString();
        List<Entry<KeyValue>> entries =
            new ArrayList<Entry<KeyValue>>();
        while (iterator.peek() != null && rowId.equals(iterator
            .peek().getKey().getRow().toString())) {
          entries.add(iterator.next());
        }
        AccumuloVertex vertex = parser.parse(rowIdentries);
        .getCaches().cache(vertexVertex.class);
        return vertex;
      }
    };
  }
  public Iterable<VertexgetVertices(String keyObject value) {
    AccumuloGraphUtils.validateProperty(keyvalue);
    byte[] val = AccumuloByteSerializer.serialize(value);
    if (val[0] != .) {
      BatchScanner scan = getBatchScanner();
      scan.fetchColumnFamily(new Text(key));
      IteratorSetting is = new IteratorSetting(10, "filter"RegExFilter.class);
      RegExFilter.setRegexs(isnullnullnull, Pattern.quote(new String(val)), false);
      scan.addScanIterator(is);
      return new ScannerIterable<Vertex>(scan) {
        @Override
        public Vertex next(PeekingIterator<Entry<Key,Value>> iterator) {
          Entry<KeyValuekv = iterator.next();
          String key = kv.getKey().getColumnFamily().toString();
          Object value = AccumuloByteSerializer.deserialize(kv.getValue().get());
          Vertex v = .getCaches().retrieve(kv.getKey().getRow().toString(), Vertex.class);
          if (v == null) {
            v = new AccumuloVertex(kv.getKey().getRow().toString());
          }
          ((AccumuloElementv).setPropertyInMemory(keyvalue);
          .getCaches().cache(vVertex.class);
          return v;
        }
      };
    } else {
      // TODO
      throw new UnsupportedOperationException("Filtering on binary data not currently supported.");
    }
  }
New to GrepCode? Check out our FAQ X