Class TransformFeatureLocking

All Implemented Interfaces:
FeatureLocking<SimpleFeatureType,SimpleFeature>, FeatureSource<SimpleFeatureType,SimpleFeature>, FeatureStore<SimpleFeatureType,SimpleFeature>, SimpleFeatureLocking, SimpleFeatureSource, SimpleFeatureStore

public class TransformFeatureLocking extends TransformFeatureStore implements SimpleFeatureLocking
  • Constructor Details

  • Method Details

    • setFeatureLock

      public void setFeatureLock(FeatureLock lock)
      Description copied from interface: FeatureLocking
      All locking operations will operate against the provided lock.

      This in in keeping with the stateful spirit of DataSource in which operations are against the "current" transaction. If a FeatureLock is not provided lock operations will only be applicable for the current transaction (they will expire on the next commit or rollback).

      That is lockFeatures() operations will:

      • Be recorded against the provided FeatureLock.
      • Be recorded against the current transaction if no FeatureLock is provided.

      Calling this method with setFeatureLock( FeatureLock.TRANSACTION ) will revert to per transaction operation.

      This design allows for the following:

      • cross DataSource FeatureLock usage
      • not having pass in the same FeatureLock object multiple times
      Specified by:
      setFeatureLock in interface FeatureLocking<SimpleFeatureType,SimpleFeature>
      Parameters:
      lock - FeatureLock configuration including authorization and requested duration
    • lockFeatures

      public int lockFeatures(Query query) throws IOException
      Description copied from interface: FeatureLocking
      FeatureLock features described by Query.

      To implement WFS parcial Locking retrieve your features with a query operation first before trying to lock them individually. If you are not into WFS please don't ask what parcial locking is.

      Specified by:
      lockFeatures in interface FeatureLocking<SimpleFeatureType,SimpleFeature>
      Parameters:
      query - Query describing the features to lock
      Returns:
      Number of features locked
      Throws:
      IOException - Thrown if anything goes wrong
    • lockFeatures

      public int lockFeatures(Filter filter) throws IOException
      Description copied from interface: FeatureLocking
      FeatureLock features described by Filter.

      To implement WFS partial Locking retrieve your features with a query operation first before trying to lock them individually. If you are not into WFS please don't ask what partial locking is.

      Specified by:
      lockFeatures in interface FeatureLocking<SimpleFeatureType,SimpleFeature>
      Parameters:
      filter - Filter describing the features to lock
      Returns:
      Number of features locked
      Throws:
      IOException - Thrown if anything goes wrong
    • lockFeatures

      public int lockFeatures() throws IOException
      Description copied from interface: FeatureLocking
      FeatureLock all Features.

      The method does not prevent addFeatures() from being used (we could add a lockDataSource() method if this functionality is required.

      Specified by:
      lockFeatures in interface FeatureLocking<SimpleFeatureType,SimpleFeature>
      Returns:
      Number of Features locked by this opperation
      Throws:
      IOException
    • unLockFeatures

      public void unLockFeatures() throws IOException
      Description copied from interface: FeatureLocking
      Unlocks all Features.

      Authorization must be provided prior before calling this method.

      
       void releaseLock( String lockId, LockingDataSource ds ){
          ds.setAuthorization( "LOCK534" );
          ds.unLockFeatures();
       }
       
      Specified by:
      unLockFeatures in interface FeatureLocking<SimpleFeatureType,SimpleFeature>
      Throws:
      IOException
    • unLockFeatures

      public void unLockFeatures(Filter filter) throws IOException
      Description copied from interface: FeatureLocking
      Unlock Features denoted by provided filter.

      Authorization must be provided prior before calling this method.

      Specified by:
      unLockFeatures in interface FeatureLocking<SimpleFeatureType,SimpleFeature>
      Throws:
      IOException
    • unLockFeatures

      public void unLockFeatures(Query query) throws IOException
      Description copied from interface: FeatureLocking
      Unlock Features denoted by provided query.

      Authorization must be provided prior before calling this method.

      Specified by:
      unLockFeatures in interface FeatureLocking<SimpleFeatureType,SimpleFeature>
      Parameters:
      query - Specifies fatures to unlock
      Throws:
      IOException