public static void deleteAllRidBags(ODocument document) { final ODocumentFieldWalker documentFieldWalker = new ODocumentFieldWalker(); final ORidBagDeleter ridBagDeleter = new ORidBagDeleter(); documentFieldWalker.walkDocument(document, ridBagDeleter); }
updated = updateFieldValueIfChanged(document, fieldName, fieldValue, newValue, concreteType); else updated = false; if (fieldWalker.goDeeper(fieldType, linkedType, fieldValue)) { if (fieldValue instanceof Map) walkMap((Map) fieldValue, fieldType, fieldWalker, walked); else if (fieldValue instanceof ODocument) { final ODocument doc = (ODocument) fieldValue; if (OType.EMBEDDED.equals(fieldType) || doc.isEmbedded()) walkDocument((ODocument) fieldValue, fieldWalker); } else if (OMultiValue.isIterable(fieldValue)) walkIterable(OMultiValue.getMultiValueIterable(fieldValue), fieldType, fieldWalker, walked);
public void walkDocument(ODocument document, ODocumentFieldVisitor fieldWalker) { final Set<ODocument> walked = Collections.newSetFromMap(new IdentityHashMap<ODocument, Boolean>()); walkDocument(document, fieldWalker, walked); walked.clear(); }
private void walkMap(Map map, OType fieldType, ODocumentFieldVisitor fieldWalker, Set<ODocument> walked) { for (Object value : map.values()) { if (value instanceof ODocument) { final ODocument doc = (ODocument) value; // only embedded documents are walked if (OType.EMBEDDEDMAP.equals(fieldType) || doc.isEmbedded()) walkDocument((ODocument) value, fieldWalker, walked); } } }
protected static void rewriteLinksInDocument(ODocument document, OIndex<OIdentifiable> exportImportHashTable, Set<ORID> brokenRids) { final OLinksRewriter rewriter = new OLinksRewriter(new OConverterData(exportImportHashTable, brokenRids)); final ODocumentFieldWalker documentFieldWalker = new ODocumentFieldWalker(); documentFieldWalker.walkDocument(document, rewriter); }
private void walkIterable(Iterable iterable, OType fieldType, ODocumentFieldVisitor fieldWalker, Set<ODocument> walked) { for (Object value : iterable) { if (value instanceof ODocument) { final ODocument doc = (ODocument) value; // only embedded documents are walked if (OType.EMBEDDEDLIST.equals(fieldType) || OType.EMBEDDEDSET.equals(fieldType) || doc.isEmbedded()) walkDocument((ODocument) value, fieldWalker, walked); } } }