org.geotools.data.LockingManager Maven / Gradle / Ivy
Show all versions of gt-main Show documentation
/*
* GeoTools - The Open Source Java GIS Toolkit
* http://geotools.org
*
* (C) 2008, 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;
import java.io.IOException;
/**
* This class describes a featureID based locking service.
*
* ContentFeatureSource, and others, may use this API to request locks on the basis of FeatureID.
*
*
This class is also used as a public api to manage locks.
*
* @author Jody Garnett, Refractions Research
*/
public interface LockingManager {
/**
* Check if any locks exist held by the authorization lockID
.
*
*
(remember that the lock may have expired)
*
* @param authID Authorization for lock
* @return true
if lock was found
*/
boolean exists(String authID);
/**
* Release locks held by the authorization lockID
.
*
*
(remember that the lock may have expired)
*
* @param authID Authorization for lock
* @param transaction Transaction with authorization for lockID
* @return true
if lock was found and released
*/
boolean release(String authID, Transaction transaction) throws IOException;
/**
* Refresh locks held by the authorization lockID
.
*
*
All features locked with the provied lockID
will be locked for additional
* time (the origional duration requested).
*
*
(remember that the lock may have expired)
*
* @param authID Authorization for lock
* @param transaction Transaction with authorization for lockID
* @return true
if lock was found and refreshed
*/
boolean refresh(String authID, Transaction transaction) throws IOException;
/** FeatureID based unlocking. */
void unLockFeatureID(
String typeName, String authID, Transaction transaction, FeatureLock featureLock)
throws IOException;
/** FeatureID based locking. */
void lockFeatureID(
String typeName, String authID, Transaction transaction, FeatureLock featureLock)
throws IOException;
}