All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.geotools.data.FeatureLock Maven / Gradle / Ivy

/*
 *    GeoTools - The Open Source Java GIS Toolkit
 *    http://geotools.org
 *
 *    (C) 2008-2014, 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.util.concurrent.TimeUnit;

/**
 * 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.
 *
 * 

A FeatureLock representing the current transaction has been provided as a static constant: * {@link #TRANSACTION}. * *

Lock duration is measured in milliseconds, although you shoudl take into account the abilities * of different databases and servers. WFS 1.1 measures lock expiry time in minuets, WFS 2.0 * measures lick expiry time in seconds.. * * @author Jody Garnett, Refractions Research, Inc. * @version $Id$ * @see Database Reseach * @see Transactional WFS * Design * @see Design Implications */ public class FeatureLock { /** Lock requested for the duration of the Transaction (until next commit or revert). */ 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 milliseconds) */ public FeatureLock(String authorization, long duration) { this.authorization = authorization; this.duration = duration; } /** * Creates a new lock. * * @param authorization LockId used to authorize the transaction * @param duration Expiry period * @param unit Time unit for expiry period */ public FeatureLock(String authorization, long duration, TimeUnit unit) { this(authorization, TimeUnit.MILLISECONDS.convert(duration, unit)); } /** * Gets the ID used for transaction authorization. * * @return the authorization ID */ public String getAuthorization() { return authorization; } /** * The expiry time for this lock (in milliseconds). * * @return expiry period in milliseconds */ public long getDuration() { return duration; } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy