/*
* Geotoolkit - An Open Source Java GIS Toolkit
* http://www.geotoolkit.org
*
* (C) 2011, Geomatys
*
* 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.geotoolkit.data.session;
import java.util.Collection;
import java.util.Map;
import org.apache.sis.storage.DataStoreException;
import org.geotoolkit.data.FeatureCollection;
import org.geotoolkit.data.FeatureIterator;
import org.geotoolkit.data.FeatureStore;
import org.geotoolkit.data.query.Query;
import org.geotoolkit.storage.StorageListener;
import org.apache.sis.util.ArgumentChecks;
import org.geotoolkit.version.Version;
import org.opengis.feature.Feature;
import org.opengis.util.GenericName;
import org.opengis.filter.Filter;
import org.opengis.geometry.Envelope;
/**
* Wraps a Session, this class is intended to be extended and methods may be
* overwritten while other will have the normal behavior.
*
* @author Johann Sorel (Geomatys)
* @module
*/
public class SessionDecorator implements Session{
protected final Session wrapped;
public SessionDecorator(final Session wrapped) {
ArgumentChecks.ensureNonNull("session", wrapped);
this.wrapped = wrapped;
}
@Override
public FeatureStore getFeatureStore() {
return wrapped.getFeatureStore();
}
@Override
public boolean isAsynchrone() {
return wrapped.isAsynchrone();
}
@Override
public Version getVersion() {
return wrapped.getVersion();
}
@Override
public FeatureCollection getFeatureCollection(final Query query) {
return wrapped.getFeatureCollection(query);
}
@Override
public FeatureIterator getFeatureIterator(final Query query) throws DataStoreException {
return wrapped.getFeatureIterator(query);
}
@Override
public void addFeatures(final String groupName, final Collection<? extends Feature> newFeatures)
throws DataStoreException {
wrapped.addFeatures(groupName, newFeatures);
}
@Override
public void updateFeatures(final String groupName, final Filter filter,
final Map<String, ?> values) throws DataStoreException {
wrapped.updateFeatures(groupName, filter, values);
}
@Override
public void removeFeatures(final String groupName, final Filter filter) throws DataStoreException {
wrapped.removeFeatures(groupName, filter);
}
@Override
public boolean hasPendingChanges() {
return wrapped.hasPendingChanges();
}
@Override
public void commit() throws DataStoreException {
wrapped.commit();
}
@Override
public void rollback() {
wrapped.rollback();
}
@Override
public long getCount(final Query query) throws DataStoreException {
return wrapped.getCount(query);
}
@Override
public Envelope getEnvelope(final Query query) throws DataStoreException {
return wrapped.getEnvelope(query);
}
@Override
public void addStorageListener(final StorageListener listener) {
wrapped.addStorageListener(listener);
}
@Override
public void removeStorageListener(final StorageListener listener) {
wrapped.addStorageListener(listener);
}
}