/*
* GeoTools - The Open Source Java GIS Toolkit
* http://geotools.org
*
* (C) 2002-2011, Open Source Geospatial Foundation (OSGeo)
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation;
* version 2.1 of the License.
*
* This library 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
* Lesser General Public License for more details.
*/
package org.geotools.data.efeature;
import java.io.IOException;
import java.lang.ref.WeakReference;
import org.eclipse.emf.ecore.change.ChangeDescription;
import org.eclipse.emf.ecore.change.util.ChangeRecorder;
import org.geotools.data.Transaction;
import org.geotools.data.Transaction.State;
/**
* @author kengu - 7. juli 2011
*
*/
public class EFeatureTransactionState implements State {
private WeakReference<Transaction> eTx;
private WeakReference<EFeatureDataStore> eDataStore;
private ChangeRecorder eRecorder;
private ChangeDescription eDescription;
// -----------------------------------------------------
// Constructors
// -----------------------------------------------------
public EFeatureTransactionState(EFeatureDataStore eDataStore) {
//
// Store weak reference to data store
//
this.eDataStore = new WeakReference<EFeatureDataStore>(eDataStore);
//
// Create change recording capabilities
//
this.eRecorder = new ChangeRecorder();
//
// End current recording (initialize the stepwise write recording cycle)
//
this.eDescription = this.eRecorder.endRecording();
}
// -----------------------------------------------------
// State implementation
// -----------------------------------------------------
public Transaction getTransaction() {
return eTx.get();
}
@Override
public void setTransaction(Transaction eTx) {
this.eTx = new WeakReference<Transaction>(eTx);
}
public EFeatureDataStore eDataStore() {
return eDataStore.get();
}
@Override
public void addAuthorization(String AuthID) throws IOException {
// TODO who does this fit into the picture?
}
@Override
public void commit() throws IOException {
}
@Override
public void rollback() throws IOException {
// TODO Auto-generated method stub
}
}