Snapshot.java :  » GWT » jstm4gwt » jstm4gwt » core » Java Open Source

Java Open Source » GWT » jstm4gwt 
jstm4gwt » jstm4gwt » core » Snapshot.java
/**
 * JSTM (http://xstm.net)
 * Distributed under the Apache License Version 2.0
 * Copyright  xstm.net
 */

package jstm4gwt.core;

import java.util.ArrayList;
import java.util.HashMap;

import jstm4gwt.misc.Debug;

final class Snapshot {

    private TransactionCommit[] _commits;

    private TransactionEntry[][] _deltas;

    private int _lastAcknowledged;

    private HashMap<Connection, Transaction> _lastReceived;

    private ArrayList<TransactionCommit> _abortedOnStart;

    public Snapshot() {
    }

    public Snapshot(TransactionCommit[] commits, TransactionEntry[][] deltas, int lastAcknowledged) {
        _commits = commits;
        _deltas = deltas;
        _lastAcknowledged = lastAcknowledged;
    }

    public static Snapshot createInitial(TransactionManager manager) {
        TransactionCommit[] commits = new TransactionCommit[1];
        TransactionEntry[][] deltas = new TransactionEntry[1][];

        TransactionCommit initial = new TransactionCommit();

        if (Debug.ENABLED) {
            manager.getHelper().addWatcher(initial, TransactionCommit.AmbientWatcher, 0, 1, "New commit");

            if (Debug.DUMPS)
                manager.putKey(initial, "Initial Commit");
        }

        initial.setStatus(TransactionCommit.Status.COMMITTED);

        commits[TransactionManager.OBJECTS_VERSIONS_INDEX] = initial;
        deltas[TransactionManager.OBJECTS_VERSIONS_INDEX] = TransactionManager.OBJECTS_DELTA;

        return new Snapshot(commits, deltas, 0);
    }

    public TransactionCommit[] getCommits() {
        return _commits;
    }

    public void setCommits(TransactionCommit[] value) {
        _commits = value;
    }

    public TransactionCommit getLast() {
        return _commits[_commits.length - 1];
    }

    public int getLastAcknowledgedIndex() {
        return _lastAcknowledged;
    }

    public TransactionCommit getLastAcknowledgedCommit() {
        return _commits[_lastAcknowledged];
    }

    public void setLastAcknowledgedIndex(int value) {
        _lastAcknowledged = value;
    }

    public TransactionEntry[][] getDeltas() {
        return _deltas;
    }

    public void setDeltas(TransactionEntry[][] value) {
        _deltas = value;
    }

    public HashMap<Connection, Transaction> getLastReceived() {
        return _lastReceived;
    }

    public void setLastReceived(HashMap<Connection, Transaction> value) {
        _lastReceived = value;
    }

    public HashMap<Connection, Transaction> getOrCreateLastReceived() {
        if (_lastReceived == null)
            _lastReceived = new HashMap<Connection, Transaction>();

        return _lastReceived;
    }

    public ArrayList<TransactionCommit> getAbortedOnStart() {
        return _abortedOnStart;
    }

    public void setAbortedOnStart(ArrayList<TransactionCommit> value) {
        _abortedOnStart = value;
    }

    public ArrayList<TransactionCommit> getOrCreateAbortedOnStart() {
        if (_abortedOnStart == null)
            _abortedOnStart = new ArrayList<TransactionCommit>();

        return _abortedOnStart;
    }
}
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.