@Override public long getID(int pos) { return vertices.get(pos); }
@Override public long getID(int pos) { return vertices.get(pos); }
public List<EntryList> edgeMultiQuery(LongArrayList vids, SliceQuery query, BackendTransaction tx) { Preconditions.checkArgument(vids != null && !vids.isEmpty()); List<StaticBuffer> vertexIds = new ArrayList<StaticBuffer>(vids.size()); for (int i = 0; i < vids.size(); i++) { Preconditions.checkArgument(vids.get(i) > 0); vertexIds.add(idManager.getKey(vids.get(i))); } Map<StaticBuffer,EntryList> result = tx.edgeStoreMultiQuery(vertexIds, query); List<EntryList> resultList = new ArrayList<EntryList>(result.size()); for (StaticBuffer v : vertexIds) resultList.add(result.get(v)); return resultList; }
public static LongArrayList mergeSort(LongArrayList a, LongArrayList b) { int posa=0, posb=0; LongArrayList result = new LongArrayList(a.size()+b.size()); while (posa<a.size() || posb<b.size()) { long next; if (posa>=a.size()) { next=b.get(posb++); } else if (posb>=b.size()) { next=a.get(posa++); } else if (a.get(posa)<=b.get(posb)) { next=a.get(posa++); } else { next=b.get(posb++); } Preconditions.checkArgument(result.isEmpty() || result.get(result.size()-1)<=next, "The input lists are not sorted"); result.add(next); } return result; }
public List<EntryList> edgeMultiQuery(LongArrayList vertexIdsAsLongs, SliceQuery query, BackendTransaction tx) { Preconditions.checkArgument(vertexIdsAsLongs != null && !vertexIdsAsLongs.isEmpty()); final List<StaticBuffer> vertexIds = new ArrayList<>(vertexIdsAsLongs.size()); for (int i = 0; i < vertexIdsAsLongs.size(); i++) { Preconditions.checkArgument(vertexIdsAsLongs.get(i) > 0); vertexIds.add(idManager.getKey(vertexIdsAsLongs.get(i))); } final Map<StaticBuffer,EntryList> result = tx.edgeStoreMultiQuery(vertexIds, query); final List<EntryList> resultList = new ArrayList<>(result.size()); for (StaticBuffer v : vertexIds) resultList.add(result.get(v)); return resultList; }
int resultSize = 0; while (counterA < sizeA && counterB < sizeB) { if (a.get(counterA) == b.get(counterB)) { long value = a.get(counterA); if (!unique) { merge.add(value); resultSize++; } else { if (resultSize <= 0 || merge.get(resultSize - 1) != value) { merge.add(value); resultSize++; } else if (a.get(counterA) < b.get(counterB)) { counterA++; } else { assert a.get(counterA) > b.get(counterB); counterB++;
public static LongArrayList mergeSort(LongArrayList a, LongArrayList b) { int positionA=0, positionB=0; LongArrayList result = new LongArrayList(a.size()+b.size()); while (positionA<a.size() || positionB<b.size()) { long next; if (positionA>=a.size()) { next=b.get(positionB++); } else if (positionB>=b.size()) { next=a.get(positionA++); } else if (a.get(positionA)<=b.get(positionB)) { next=a.get(positionA++); } else { next=b.get(positionB++); } Preconditions.checkArgument(result.isEmpty() || result.get(result.size()-1)<=next, "The input lists are not sorted"); result.add(next); } return result; }
int resultSize = 0; while (counterA < sizeA && counterB < sizeB) { if (a.get(counterA) == b.get(counterB)) { long value = a.get(counterA); if (!unique) { merge.add(value); resultSize++; } else { if (resultSize <= 0 || merge.get(resultSize - 1) != value) { merge.add(value); resultSize++; } else if (a.get(counterA) < b.get(counterB)) { counterA++; } else { assert a.get(counterA) > b.get(counterB); counterB++;
@Override public void add(TitanVertex n) { if (!vertices.isEmpty()) sorted = sorted && vertices.get(vertices.size()-1)<=n.longId(); vertices.add(n.longId()); }
@Override public void add(JanusGraphVertex n) { if (!vertices.isEmpty()) sorted = sorted && vertices.get(vertices.size()-1)<=n.longId(); vertices.add(n.longId()); }
public void executeMultiQuery(final Collection<InternalVertex> vertices, final SliceQuery sq, final QueryProfiler profiler) { LongArrayList vids = new LongArrayList(vertices.size()); for (InternalVertex v : vertices) { if (!v.isNew() && v.hasId() && (v instanceof CacheVertex) && !v.hasLoadedRelations(sq)) vids.add(v.longId()); } if (!vids.isEmpty()) { List<EntryList> results = QueryProfiler.profile(profiler, sq, true, q -> graph.edgeMultiQuery(vids, q, txHandle)); int pos = 0; for (TitanVertex v : vertices) { if (pos<vids.size() && vids.get(pos) == v.longId()) { final EntryList vresults = results.get(pos); ((CacheVertex) v).loadRelations(sq, new Retriever<SliceQuery, EntryList>() { @Override public EntryList get(SliceQuery query) { return vresults; } }); pos++; } } } }
public void executeMultiQuery(final Collection<InternalVertex> vertices, final SliceQuery sq, final QueryProfiler profiler) { LongArrayList vertexIds = new LongArrayList(vertices.size()); for (InternalVertex v : vertices) { if (!v.isNew() && v.hasId() && (v instanceof CacheVertex) && !v.hasLoadedRelations(sq)) vertexIds.add(v.longId()); } if (!vertexIds.isEmpty()) { List<EntryList> results = QueryProfiler.profile(profiler, sq, true, q -> graph.edgeMultiQuery(vertexIds, q, txHandle)); int pos = 0; for (JanusGraphVertex v : vertices) { if (pos<vertexIds.size() && vertexIds.get(pos) == v.longId()) { final EntryList vresults = results.get(pos); ((CacheVertex) v).loadRelations(sq, query -> vresults); pos++; } } } }
int first = getNodeMap().get(osmNodeIds.get(0)); int last = getNodeMap().get(osmNodeIds.get(osmNodeIds.size() - 1)); double firstLat = getTmpLatitude(first), firstLon = getTmpLongitude(first); double lastLat = getTmpLatitude(last), lastLon = getTmpLongitude(last); int lastBarrier = -1; for (int i = 0; i < size; i++) { long nodeId = osmNodeIds.get(i); long nodeFlags = getNodeFlagsMap().get(nodeId);
/** * Compare index-aligned elements against another * {@link LongIndexedContainer}. */ protected boolean equalElements(LongArrayList other) { int max = size(); if (other.size() != max) { return false; } for (int i = 0; i < max; i++) { if (!((other.get(i)) == ( get(i)))) { return false; } } return true; }
@Override public void add(TitanVertex n) { if (!vertices.isEmpty()) sorted = sorted && vertices.get(vertices.size()-1)<=n.longId(); vertices.add(n.longId()); }