private static void checkIndexedPropertiesOnCreation(final ODocument iRecord, final Collection<OIndex<?>> iIndexes) { for (final OIndex<?> index : iIndexes) { final Object key = index.getDefinition().getDocumentValueToIndex(iRecord); if (key instanceof Collection) { for (final Object keyItem : (Collection<?>) key) { if (keyItem != null) index.checkEntry(iRecord, keyItem); } } else { if (key != null) index.checkEntry(iRecord, key); } } }
private static void checkIndexedPropertiesOnUpdate(final ODocument iRecord, final Collection<OIndex<?>> iIndexes) { final Set<String> dirtyFields = new HashSet<String>(Arrays.asList(iRecord.getDirtyFields())); if (dirtyFields.isEmpty()) return; for (final OIndex<?> index : iIndexes) { final OIndexDefinition indexDefinition = index.getDefinition(); final List<String> indexFields = indexDefinition.getFields(); for (final String indexField : indexFields) { if (dirtyFields.contains(indexField)) { final Object key = index.getDefinition().getDocumentValueToIndex(iRecord); if (key instanceof Collection) { for (final Object keyItem : (Collection<?>) key) { if (keyItem != null) index.checkEntry(iRecord, keyItem); } } else { if (key != null) index.checkEntry(iRecord, key); } break; } } } }