Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
 /*
  * Copyright (c) 2014 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.propertycontainer.snapshot;
public class LabelSnapshotIterator extends PrefetchingIterator<Labelimplements Iterator<Label>, Iterable<Label> {
    private final Node node;
    private final Iterator<LabelwrappedIterator;
    private final Iterator<LabelremovedLabelsIterator;
    public LabelSnapshotIterator(Node nodeIterable<LabelwrappedIterableTransactionDataContainer transactionDataContainer) {
        this. = node;
        this. = wrappedIterable.iterator();
        this. = transactionDataContainer;
        if (transactionDataContainer.getNodeTransactionData().hasBeenChanged(node)) {
            this. = transactionDataContainer.getNodeTransactionData().removedLabels(node).iterator();
        }
        else if (transactionDataContainer.getNodeTransactionData().hasBeenDeleted(node)) {
            this. = transactionDataContainer.getNodeTransactionData().labelsOfDeletedNode(node).iterator();
        }
        else {
            this. = EmptyIterator.emptyIterator();
        }
    }

    
    @Override
    public Iterator<Labeliterator() {
        return this;
    }

    
    @Override
    protected Label fetchNextOrNull() {
        while (.hasNext()) {
            Label next = .next();
                //just assigned - wasn't there before the TX started
                continue;
            }
            return next;
        }
        if (.hasNext()) {
            return .next();
        }
        return null;
    }
New to GrepCode? Check out our FAQ X