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; }
public Collection<OIdentifiable> get(final Object iKey) { try (final OResultSet result = getDatabase().indexQuery(getName(), String.format(QUERY_GET, name), iKey)) { return result.stream().map((res) -> res.getIdentity().orElse(null)).collect(Collectors.toSet()); } }
/** * this is for subqueries, when a OResult is found <ul> <li>if it's a projection with a single column, the value is returned</li> * <li>if it's a document, the RID is returned</li> </ul> * * @param value * * @return */ private Object unboxOResult(Object value) { if (value instanceof List) { return ((List) value).stream().map(x -> unboxOResult(x)).collect(Collectors.toList()); } if (value instanceof OResult) { if (((OResult) value).isElement()) { return ((OResult) value).getIdentity().orElse(null); } Set<String> props = ((OResult) value).getPropertyNames(); if (props.size() == 1) { return ((OResult) value).getProperty(props.iterator().next()); } } return value; }
if (item instanceof OResult) { if (((OResult) item).isElement()) { rids.add(((OResult) item).getIdentity().get().toString()); } else { Set<String> properties = ((OResult) item).getPropertyNames();
public Object getObject(String columnLabel) throws SQLException { return result.getIdentity().toString();
@Override protected void fetchNextEntryPoints(OCommandContext ctx, int nRecords) { OResultSet nextN = getPrev().get().syncPull(ctx, nRecords); while (nextN.hasNext()) { while (nextN.hasNext()) { OResult item = toTraverseResult(nextN.next()); if(item != null){ List<ORID> stack = new ArrayList<>(); item.getIdentity().ifPresent(x -> stack.add(x)); ((OResultInternal) item).setMetadata("$stack", stack); List<OIdentifiable> path = new ArrayList<>(); path.add(item.getIdentity().get()); ((OResultInternal) item).setMetadata("$path", path); if (item != null && item.isElement() && !traversed.contains(item.getElement().get().getIdentity())) { tryAddEntryPoint(item, ctx); } } } nextN = getPrev().get().syncPull(ctx, nRecords); } }
List<OIdentifiable> newPath = new ArrayList<>(); newPath.addAll(path); nextStep.getIdentity().ifPresent(x -> newPath.add(x.getIdentity())); ((OTraverseResult) nextStep).setMetadata("$path", newPath); List<OIdentifiable> newPath = new ArrayList<>(); newPath.addAll(path); nextStep.getIdentity().ifPresent(x -> newPath.add(x.getIdentity())); ((OTraverseResult) nextStep).setMetadata("$path", newPath);
public void applyUpdate(OResultInternal result, OCommandContext ctx) { if (right != null) { Object leftVal = left.execute(result, ctx); Object rightVal = right.execute(result, ctx); if (OMultiValue.isMultiValue(leftVal)) { OMultiValue.remove(leftVal, rightVal, false); if (OMultiValue.isMultiValue(rightVal)) { Iterator<Object> iter = OMultiValue.getMultiValueIterator(rightVal); while (iter.hasNext()) { Object item = iter.next(); if (item instanceof OResult && ((OResult) item).getIdentity().isPresent()) { OMultiValue.remove(leftVal, ((OResult) item).getIdentity().get(), false); } else { OMultiValue.remove(leftVal, item, false); } } } } } else { left.applyRemove(result, ctx); } } }
@Override protected void fetchNextEntryPoints(OCommandContext ctx, int nRecords) { OResultSet nextN = getPrev().get().syncPull(ctx, nRecords); while (nextN.hasNext()) { OResult item = toTraverseResult(nextN.next()); if (item == null) { continue; } ((OResultInternal) item).setMetadata("$depth", 0); List stack = new ArrayList(); item.getIdentity().ifPresent(x -> stack.add(x)); ((OResultInternal) item).setMetadata("$stack", stack); List<OIdentifiable> path = new ArrayList<>(); if (item.getIdentity().isPresent()) { path.add(item.getIdentity().get()); } else if (item.getProperty("@rid") != null) { path.add(item.getProperty("@rid")); } ((OResultInternal) item).setMetadata("$path", path); if (item != null && item.isElement() && !traversed.contains(item.getElement().get().getIdentity())) { tryAddEntryPoint(item, ctx); traversed.add(item.getElement().get().getIdentity()); } else if (item.getProperty("@rid") != null && item.getProperty("@rid") instanceof OIdentifiable) { tryAddEntryPoint(item, ctx); traversed.add(((OIdentifiable) item.getProperty("@rid")).getIdentity()); } } }
Object val = OMultiValue.getFirstValue(iValue); if (val instanceof OResult) { val = ((OResult) val).getIdentity().orElse(null);
int clusterId = nextItem.getIdentity().get().getClusterId(); if (clusterId < 0) {
boolean found = false; for (ORecordId rid : rids) { if (rid.equals(record.getIdentity().orElse(null))) { found = true; break;
val = OMultiValue.getFirstValue(val); if (val instanceof OResult) { val = ((OResult) val).getIdentity().orElse(null);