Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Copyright (c) 2013 GraphAware
   *
   * This file is part of GraphAware.
   *
   * GraphAware is free software: you can redistribute it and/or modify it under the terms of
   * the GNU General Public License as published by the Free Software Foundation, either
   * version 3 of the License, or (at your option) any later version.
   *
  * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
  *  without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  * See the GNU General Public License for more details. You should have received a copy of
  * the GNU General Public License along with this program.  If not, see
  * <http://www.gnu.org/licenses/>.
  */
 
 package com.graphaware.tx.event.improved.data.lazy;
 
 
 import java.util.*;

 
     private static final Logger LOG = LoggerFactory.getLogger(LazyNodeTransactionData.class);
 
     private final TransactionData transactionData;
 
     private Map<LongSet<Label>> assignedLabels = null;
     private Map<LongSet<Label>> removedLabels = null;
     private Map<LongSet<Label>> deletedNodeLabels = null;

    
Construct node transaction data from Neo4j org.neo4j.graphdb.event.TransactionData.

Parameters:
transactionData provided by Neo4j.
transactionDataContainer containing com.graphaware.tx.event.improved.data.PropertyContainerTransactionData..
 
     public LazyNodeTransactionData(TransactionData transactionDataTransactionDataContainer transactionDataContainer) {
         this. = transactionData;
         this. = transactionDataContainer;
     }

    
 
     @Override
     protected Node oldSnapshot(Node original) {
         return new NodeSnapshot(original);
     }

    
 
     @Override
     protected Node newSnapshot(Node original) {
         return original;
     }

    
 
     @Override
     protected Iterable<Nodecreated() {
         return .createdNodes();
     }

    
 
     @Override
     protected Iterable<Nodedeleted() {
         return .deletedNodes();
     }

    
 
     @Override
     protected Iterable<PropertyEntry<Node>> assignedProperties() {
         return .assignedNodeProperties();
     }

    
 
     @Override
    protected Iterable<PropertyEntry<Node>> removedProperties() {
        return .removedNodeProperties();
    }

    
    @Override
    public boolean hasLabelBeenAssigned(Node nodeLabel label) {
        initializeChanged();
        if (!hasBeenChanged(node)) {
//            LOG.warn(node + " has not been changed but the caller thinks it should have assigned labels.");
            return false;
        }
        if (!.containsKey(node.getId())) {
            return false;
        }
        return .get(node.getId()).contains(label);
    }

    
    @Override
    public Set<LabelassignedLabels(Node node) {
        initializeChanged();
        if (!hasBeenChanged(node)) {
            .warn(node + " has not been changed but the caller thinks it should have assigned labels.");
            return Collections.emptySet();
        }
        if (!.containsKey(node.getId())) {
            return Collections.emptySet();
        }
        return Collections.unmodifiableSet(.get(node.getId()));
    }

    
    @Override
    public boolean hasLabelBeenRemoved(Node nodeLabel label) {
        initializeChanged();
        if (!hasBeenChanged(node)) {
            .warn(node + " has not been changed but the caller thinks it should have removed labels.");
            return false;
        }
        if (!.containsKey(node.getId())) {
            return false;
        }
        return .get(node.getId()).contains(label);
    }

    
    @Override
    public Set<LabelremovedLabels(Node node) {
        initializeChanged();
        if (!hasBeenChanged(node)) {
            .warn(node + " has not been changed but the caller thinks it should have removed labels.");
            return Collections.emptySet();
        }
        if (!.containsKey(node.getId())) {
            return Collections.emptySet();
        }
        return Collections.unmodifiableSet(.get(node.getId()));
    }

    
    @Override
    public Set<LabellabelsOfDeletedNode(Node node) {
        initializeChanged();
        if (!hasBeenDeleted(node)) {
            .error(node + " has not been deleted but the caller thinks it has! This is a bug.");
            throw new IllegalStateException(node + " has not been deleted but the caller thinks it has! This is a bug.");
        }
        if (!.containsKey(node.getId())) {
            return Collections.emptySet();
        }
        return Collections.unmodifiableSet(.get(node.getId()));
    }
    @Override
    protected void doInitializeChanged() {
         = new HashMap<>();
         = new HashMap<>();
         = new HashMap<>();
        Map<LongNodepotentiallyChangedNodes = new HashMap<>();
        for (LabelEntry labelEntry : .assignedLabels()) {
            Node node = labelEntry.node();
            if (hasBeenCreated(node)) {
                continue;
            }
            if (!.containsKey(node.getId())) {
                .put(node.getId(), new HashSet<Label>());
            }
            .get(node.getId()).add(labelEntry.label());
            potentiallyChangedNodes.put(node.getId(), node);
        }
        for (LabelEntry labelEntry : .removedLabels()) {
            Node node = labelEntry.node();
            if (hasBeenDeleted(node)) {
                if (!.containsKey(node.getId())) {
                    .put(node.getId(), new HashSet<Label>());
                }
                .get(node.getId()).add(labelEntry.label());
                continue;
            }
            if (!.containsKey(node.getId())) {
                .put(node.getId(), new HashSet<Label>());
            }
            .get(node.getId()).add(labelEntry.label());
            potentiallyChangedNodes.put(node.getId(), node);
        }
        for (Long nodeId : .keySet()) {
            registerChange(potentiallyChangedNodes.get(nodeId));
        }
        for (Long nodeId : .keySet()) {
            registerChange(potentiallyChangedNodes.get(nodeId));
        }
    }
New to GrepCode? Check out our FAQ X