/*
* 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;
/**
* Used in conjuction with {@link FeatureLocking} to lock features during a
* transaction. This class is responsible for supplying a unique Authorization
* ID and expiry period.
* <p>
*
* A FeatureLock representing the Current Transaction has been provided as a
* static constant: {@link #TRANSACTION}.
*
* @author Jody Garnett, Refractions Research, Inc.
*
* @source $URL$
* @version $Id$
*
* @see <a
* href="http://vwfs.refractions.net/docs/Database_Research.pdf">Database
* Reseach</a>
* @see <a
* href="http://vwfs.refractions.net/docs/Transactional_WFS_Design.pdf">Transactional
* WFS Design</a>
* @see <a
* href="http://vwfs.refractions.net/docs/Design_Implications.pdf">Design
* Implications</a>
* @see FeatureLockFactory
*/
public class FeatureLock {
public static final FeatureLock TRANSACTION = new CurrentTransactionLock();
protected String authorization;
protected long duration;
/**
* Creates a new lock.
*
* @param authorization LockId used to authorize the transaction
* @param duration expiry period of this lock (in minutes)
*/
public FeatureLock(String authorization, long duration ){
this.authorization = authorization;
this.duration = duration;
}
/**
* Gets the ID used for transaction authorization.
*
* @return the authorization ID
*/
public String getAuthorization(){
return authorization;
}
/**
* Gets the expiry time for this lock (in minutes).
*
* @return expiry period
*/
public long getDuration(){
return duration;
}
}