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 OCollate getCollate(OResult currentRecord, OCommandContext ctx) { if (identifier != null && currentRecord != null) { return currentRecord.getRecord().map(x -> (OElement) x).flatMap(elem -> elem.getSchemaType()) .map(clazz -> clazz.getProperty(identifier.getStringValue())).map(prop -> prop.getCollate()).orElse(null); } return null; }
@Override public OBlob getBlobProperty(String name) { Object result = null; if (content.containsKey(name)) { result = content.get(name); } else if (element != null) { result = ((ODocument) element.getRecord()).getProperty(name); } if (result instanceof OResult) { result = ((OResult) result).getRecord().orElse(null); } if (result instanceof ORID) { result = ((ORID) result).getRecord(); } return result instanceof OBlob ? (OBlob) result : null; }
@Override public OElement getElementProperty(String name) { Object result = null; if (content.containsKey(name)) { result = content.get(name); } else if (element != null) { result = ((ODocument) element.getRecord()).getProperty(name); } if (result instanceof OResult) { result = ((OResult) result).getRecord().orElse(null); } if (result instanceof ORID) { result = ((ORID) result).getRecord(); } return result instanceof OElement ? (OElement) result : null; }
@Override public OEdge getEdgeProperty(String name) { Object result = null; if (content.containsKey(name)) { result = content.get(name); } else if (element != null) { result = ((ODocument) element.getRecord()).getProperty(name); } if (result instanceof OResult) { result = ((OResult) result).getRecord().orElse(null); } if (result instanceof ORID) { result = ((ORID) result).getRecord(); } return result instanceof OElement ? ((OElement) result).asEdge().orElse(null) : null; }
@Override public OVertex getVertexProperty(String name) { Object result = null; if (content.containsKey(name)) { result = content.get(name); } else if (element != null) { result = ((ODocument) element.getRecord()).getProperty(name); } if (result instanceof OResult) { result = ((OResult) result).getRecord().orElse(null); } if (result instanceof ORID) { result = ((ORID) result).getRecord(); } return result instanceof OElement ? ((OElement) result).asVertex().orElse(null) : null; }