@Override public Object beforeCommit( TransactionData data ) { Iterator<Node> nodes = data.createdNodes().iterator(); if ( nodes.hasNext() ) { Node node = nodes.next(); index.add( node, "key", "value" ); } return null; }
private Object verify( TransactionData data ) { // TODO Hmm, makes me think... should we really call transaction event handlers // for these relationship type / property index transactions? if ( Iterables.count( data.createdNodes() ) == 0 ) { return null; } try { this.expectedData.compareTo( data ); this.hasBeenCalled = true; return null; } catch ( Exception e ) { failure = e; throw e; } }
Map<Node,Set<String>> expectedRemovedLabels = cloneLabelData( this.expectedRemovedLabels ); for ( Node node : data.createdNodes() )
/** * {@inheritDoc} */ @Override protected Iterable<Node> created() { return transactionData.createdNodes(); }
private static Map<String, Object> txDataParams(TransactionData txData, String phase) { return map("transactionId", phase.equals("after") ? txData.getTransactionId() : -1, "commitTime", phase.equals("after") ? txData.getCommitTime() : -1, "createdNodes", txData.createdNodes(), "createdRelationships", txData.createdRelationships(), "deletedNodes", txData.deletedNodes(), "deletedRelationships", txData.deletedRelationships(), "removedLabels", aggregateLabels(txData.removedLabels()), "removedNodeProperties", aggregatePropertyKeys(txData.removedNodeProperties(),true,true), "removedRelationshipProperties", aggregatePropertyKeys(txData.removedRelationshipProperties(),false,true), "assignedLabels", aggregateLabels(txData.assignedLabels()), "assignedNodeProperties",aggregatePropertyKeys(txData.assignedNodeProperties(),true,false), "assignedRelationshipProperties",aggregatePropertyKeys(txData.assignedRelationshipProperties(),false,false)); }
/** * {@inheritDoc} */ @Override protected Iterable<Node> created() { return transactionData.createdNodes(); }
final Set<Node> createdNodes = Iterables.asSet(data.createdNodes()); iterateLabelChanges( stream(data.assignedLabels()).filter( labelEntry -> !createdNodes.contains( labelEntry.node() ) ),
@Override public Boolean beforeCommit(TransactionData transactionData) throws Exception { if (!rootLock.isLocked()) { return false; } for (Node node : transactionData.createdNodes()) { if (node.hasLabel(TimeTreeRoot)) { return true; } } return false; }
@Override public Collection<BulkableAction> beforeCommit(TransactionData transactionData) throws Exception { Map<IndexId, BulkableAction> actions = new HashMap<>(1000); for (Node node : transactionData.createdNodes()) { if (hasLabel(node)) actions.putAll(indexRequests(node)); } for (LabelEntry labelEntry : transactionData.assignedLabels()) { if (hasLabel(labelEntry)) { if (transactionData.isDeleted(labelEntry.node())) { actions.putAll(deleteRequests(labelEntry.node())); } else { actions.putAll(indexRequests(labelEntry.node())); } } } for (LabelEntry labelEntry : transactionData.removedLabels()) { if (hasLabel(labelEntry)) actions.putAll(deleteRequests(labelEntry.node(), labelEntry.label())); } for (PropertyEntry<Node> propEntry : transactionData.assignedNodeProperties()) { if (hasLabel(propEntry)) actions.putAll(indexRequests(propEntry.entity())); } for (PropertyEntry<Node> propEntry : transactionData.removedNodeProperties()) { if (!transactionData.isDeleted(propEntry.entity()) && hasLabel(propEntry)) actions.putAll(updateRequests(propEntry.entity())); } return actions.isEmpty() ? Collections.<BulkableAction>emptyList() : actions.values(); }