private static void insert( FeatureStore fs, String datasetFile, GMLVersion gmlVersion, IDGenMode mode ) throws XMLStreamException, FactoryConfigurationError, IOException, XMLParsingException, UnknownCRSException, FeatureStoreException { File f = new File( datasetFile ); URL url = f.toURI().toURL(); System.out.print( "- Reading dataset: '" + datasetFile + "'..." ); GMLStreamReader gmlReader = GMLInputFactory.createGMLStreamReader( gmlVersion, url ); gmlReader.setApplicationSchema( fs.getSchema() ); FeatureCollection fc = gmlReader.readFeatureCollection(); System.out.println( "done." ); FeatureStoreTransaction ta = null; try { ta = fs.acquireTransaction(); System.out.print( "- Inserting features..." ); List<String> fids = ta.performInsert( fc, mode ); System.out.println( "done." ); for ( String fid : fids ) { System.out.println( "- Inserted: " + fid ); } System.out.println( "\n- Insert succeeded (" + fids.size() + " features). Committing transaction." ); ta.commit(); } catch ( Exception e ) { e.printStackTrace(); System.err.println( "Error performing insert: " + e.getMessage() ); if ( ta != null ) { ta.rollback(); } } }
int fids = ta.performInsert( fc, USE_EXISTING ).size(); LOG.info( "Inserted " + fids + " features." ); ta.commit(); } catch ( Exception e ) { String msg = Messages.getMessage( "STORE_MANAGER_STORE_SETUP_ERROR", e.getMessage() );
ta.commit(); try { LOG.debug( "Rolling back feature store transaction:" + ta ); ta.rollback(); } catch ( FeatureStoreException e1 ) { LOG.debug( "Error occured during rollback: " + e.getMessage(), e ); try { LOG.debug( "Rolling back feature store transaction:" + ta ); ta.rollback(); } catch ( FeatureStoreException e1 ) { LOG.debug( "Error occured during rollback: " + e.getMessage(), e ); try { LOG.debug( "Rolling back feature store transaction:" + ta ); ta.rollback(); } catch ( FeatureStoreException e1 ) { LOG.debug( "Error occured during rollback: " + e.getMessage(), e ); try { LOG.debug( "Rolling back feature store transaction:" + ta ); ta.rollback(); } catch ( FeatureStoreException e1 ) { LOG.debug( "Error occured during rollback: " + e.getMessage(), e );
List<String> newFids = ta.performInsert( fc, mode ); for ( String newFid : newFids ) { inserted.add( newFid, insert.getHandle() );
private void doDelete( Delete delete, Lock lock ) throws OWSException { LOG.debug( "doDelete: " + delete ); QName ftName = delete.getTypeName(); FeatureStore fs = service.getStore( ftName ); if ( fs == null ) { throw new OWSException( Messages.get( "WFS_FEATURE_TYPE_NOT_SERVED", ftName ), INVALID_PARAMETER_VALUE ); } FeatureStoreTransaction ta = acquireTransaction( fs ); Filter filter = delete.getFilter(); // superimpose default query CRS Filters.setDefaultCRS( filter, master.getDefaultQueryCrs() ); try { switch ( filter.getType() ) { case ID_FILTER: { deleted += ta.performDelete( (IdFilter) filter, lock ); break; } case OPERATOR_FILTER: { deleted += ta.performDelete( ftName, (OperatorFilter) filter, lock ); break; } } } catch ( FeatureStoreException e ) { throw new OWSException( Messages.get( "WFS_ERROR_PERFORMING_DELETE", e.getMessage() ), NO_APPLICABLE_CODE ); } }
private void doReplace( Replace replace, Lock lock ) throws OWSException { LOG.debug( "doReplace: " + replace ); XMLStreamReader xmlStream = replace.getReplacementFeatureStream(); QName ftName = xmlStream.getName(); FeatureStore fs = service.getStore( ftName ); if ( fs == null ) { throw new OWSException( Messages.get( "WFS_FEATURE_TYPE_NOT_SERVED", ftName ), INVALID_PARAMETER_VALUE ); } Feature replacementFeature = null; Filter filter = null; try { GMLStreamReader gmlReader = createGMLStreamReader( GML_32, xmlStream ); gmlReader.setApplicationSchema( fs.getSchema() ); replacementFeature = gmlReader.readFeature(); filter = replace.getFilter(); // superimpose default CRS Filters.setDefaultCRS( filter, master.getDefaultQueryCrs() ); } catch ( Exception e ) { throw new OWSException( e.getMessage(), INVALID_PARAMETER_VALUE ); } FeatureStoreTransaction ta = acquireTransaction( fs ); try { String newFid = ta.performReplace( replacementFeature, filter, lock, idGenMode ); replaced.add( newFid, replace.getHandle() ); } catch ( FeatureStoreException e ) { throw new OWSException( "Error performing replace: " + e.getMessage(), e, NO_APPLICABLE_CODE ); } }
private void doUpdate( Update update, Lock lock ) throws OWSException { LOG.debug( "doUpdate: " + update ); QName ftName = update.getTypeName(); FeatureType ft = service.lookupFeatureType( ftName ); FeatureStore fs = service.getStore( ftName ); if ( fs == null ) { throw new OWSException( Messages.get( "WFS_FEATURE_TYPE_NOT_SERVED", ftName ), INVALID_PARAMETER_VALUE ); } GMLVersion inputFormat = determineFormat( request.getVersion(), update.getInputFormat() ); FeatureStoreTransaction ta = acquireTransaction( fs ); List<ParsedPropertyReplacement> replacementProps = getReplacementProps( update, ft, inputFormat ); Filter filter = null; try { filter = update.getFilter(); // superimpose default query CRS Filters.setDefaultCRS( filter, master.getDefaultQueryCrs() ); } catch ( Exception e ) { throw new OWSException( e.getMessage(), INVALID_PARAMETER_VALUE ); } try { List<String> updatedFids = ta.performUpdate( ftName, replacementProps, filter, lock ); for ( String updatedFid : updatedFids ) { this.updated.add( updatedFid, update.getHandle() ); } } catch ( FeatureStoreException e ) { throw new OWSException( "Error performing update: " + e.getMessage(), e, NO_APPLICABLE_CODE ); } }