public static boolean isEmptyOptional(Object elem) { if (elem == EMPTY_OPTIONAL) { return true; } if (elem instanceof OResult && EMPTY_OPTIONAL == ((OResult) elem).getElement().orElse(null)) { return true; } return false; } }
protected boolean equals(Object prevValue, OIdentifiable nextElement) { if (prevValue instanceof OResult) { prevValue = ((OResult) prevValue).getElement().orElse(null); } if (nextElement instanceof OResult) { nextElement = ((OResult) nextElement).getElement().orElse(null); } return prevValue != null && prevValue.equals(nextElement); }
public void setProperty(String name, Object value) { if (value instanceof Optional) { value = ((Optional) value).orElse(null); } if (value instanceof OResult && ((OResult) value).isElement()) { content.put(name, ((OResult) value).getElement().get()); } else { content.put(name, value); } }
default Optional<OEdge> getEdge() { return getElement().flatMap(x -> x.asEdge()); }
default Optional<OVertex> getVertex() { return getElement().flatMap(x -> x.asVertex()); }
default boolean isEdge() { return getElement().map(x -> x.isEdge()).orElse(false); }
private void tryAddEntryPoint(OResult res, OCommandContext ctx) { if (whileClause == null || whileClause.matchesFilters(res, ctx)) { this.entryPoints.add(res); } traversed.add(res.getElement().get().getIdentity()); }
public Object evaluate(OResult iCurrentRecord, OCommandContext ctx) { if (name.equalsIgnoreCase("@rid")) { return iCurrentRecord.getIdentity().orElse(null); } else if (name.equalsIgnoreCase("@class")) { return iCurrentRecord.getElement().flatMap(r -> r.getSchemaType()).map(clazz -> clazz.getName()).orElse(null); } else if (name.equalsIgnoreCase("@version")) { return iCurrentRecord.getRecord().map(r -> r.getVersion()).orElse(null); } return null; }
private List<ODocument> toList(OResultSet rs) { if (!rs.hasNext()) { return null; } List<ODocument> result = new ArrayList<>(); while (rs.hasNext()) { result.add((ODocument) rs.next().getElement().orElse(null)); } return result; }
@Override public OResult next() { OResult result = upstream.next(); if (result instanceof OResultInternal) { handleUpdateEdge((ODocument) result.getElement().get().getRecord()); } return result; }
@Override public boolean tryAdvance(Consumer<? super OElement> action) { while (hasNext()) { OResult elem = next(); if (elem.isElement()) { action.accept(elem.getElement().get()); return true; } } return false; }
protected void init(OCommandContext ctx) { if (downstream == null) { Object startingElem = sourceRecord.getProperty(getStartingPointAlias()); if (startingElem instanceof OResult) { startingElem = ((OResult) startingElem).getElement().orElse(null); } downstream = executeTraversal(ctx, this.item, (OIdentifiable) startingElem, 0, null).iterator(); } }
private OResult toTraverseResult(OResult item) { OTraverseResult res = null; if (item instanceof OTraverseResult) { res = (OTraverseResult) item; } else if (item.isElement() && item.getElement().get().getIdentity().isPersistent()) { res = new OTraverseResult(); res.setElement(item.getElement().get()); res.depth = 0; res.setMetadata("$depth", 0); } else { return null; } return res; }
@Override public OResult next() { OResult result = upstream.next(); if (result.isElement()) { if (cluster == null) { ctx.getDatabase().save(result.getElement().orElse(null)); } else { ctx.getDatabase().save(result.getElement().orElse(null), cluster.getStringValue()); } } return result; }
private void tryAddEntryPoint(OResult res, OCommandContext ctx) { if (whileClause == null || whileClause.matchesFilters(res, ctx)) { this.entryPoints.add(0, res); } if (res.isElement()) { traversed.add(res.getElement().get().getIdentity()); } else if (res.getProperty("@rid") != null && res.getProperty("@rid") instanceof OIdentifiable) { traversed.add(((OIdentifiable) res.getProperty("@rid")).getIdentity()); } }
private boolean alreadyVisited(OResult nextValue) { if (nextValue.isElement()) { ORID identity = nextValue.getElement().get().getIdentity(); int cluster = identity.getClusterId(); long pos = identity.getClusterPosition(); if (cluster >= 0 && pos >= 0) { return pastRids.contains(identity); } } return pastItems.contains(nextValue); }
@Override public OResult next() { OResult result = upstream.next(); result.getElement().ifPresent(x -> ctx.getDatabase().getTransaction().lockRecord(x, lockStrategy)); return result; }
private void markAsVisited(OResult nextValue) { if (nextValue.isElement()) { ORID identity = nextValue.getElement().get().getIdentity(); int cluster = identity.getClusterId(); long pos = identity.getClusterPosition(); if (cluster >= 0 && pos >= 0) { pastRids.add(identity); return; } } pastItems.add(nextValue); }
public synchronized void load(final ODatabaseDocumentInternal db) { sequences.clear(); if (db.getMetadata().getImmutableSchemaSnapshot().existsClass(OSequence.CLASS_NAME)) { try (final OResultSet result = db.query("SELECT FROM " + OSequence.CLASS_NAME)) { while (result.hasNext()) { OResult res = result.next(); final OSequence sequence = OSequenceHelper.createSequence((ODocument) res.getElement().get()); sequences.put(sequence.getName().toUpperCase(Locale.ENGLISH), sequence); } } } }
private void fetchRidsToFind(OCommandContext ctx, int nRecords) { ridsToFind = new HashSet<>(); OExecutionStepInternal prevStep = getPrev().get(); OResultSet nextSlot = prevStep.syncPull(ctx, nRecords); while (nextSlot.hasNext()) { while (nextSlot.hasNext()) { OResult nextRes = nextSlot.next(); if (nextRes.isElement()) { ridsToFind.add(nextRes.getElement().get().getIdentity()); } } nextSlot = prevStep.syncPull(ctx, nRecords); } }