@Override public void setTransaction(Transaction transaction) { super.setTransaction(transaction); if (delegate.getTransaction() != transaction) { delegate.setTransaction(transaction); } }
query = joinQuery(query); query = resolvePropertyNames(query); if (!canTransact() && transaction != null && transaction != Transaction.AUTO_COMMIT) { if ((flags | WRITER_COMMIT) == WRITER_COMMIT) { writer = getWriterInternal(query, flags); if (!canFilter()) { if (query.getFilter() != null && query.getFilter() != Filter.INCLUDE) { writer = new FilteringFeatureWriter(writer, query.getFilter()); (DiffTransactionState) getTransaction().getState(getEntry()); FeatureReader<SimpleFeatureType, SimpleFeature> reader = getReader(query); writer = state.diffWriter(this, reader); writer = getWriterInternal(query, flags); if (!canEvent()) { writer = new EventContentFeatureWriter(this, writer); if (!canFilter()) { if (query.getFilter() != null && query.getFilter() != Filter.INCLUDE) { writer = new FilteringFeatureWriter(writer, query.getFilter()); if (!canLock()) { InProcessLockingManager lockingManager = (InProcessLockingManager) getDataStore().getLockingManager();
/** Calls through to {@link #modifyFeatures(Name[], Object[], Filter)}. */ public final void modifyFeatures(Name name, Object value, Filter filter) throws IOException { modifyFeatures(new Name[] {name}, new Object[] {value}, filter); }
/** * Returns a writer over features specified by a filter. * * @param filter The filter * @param flags flags specifying writing mode */ public final FeatureWriter<SimpleFeatureType, SimpleFeature> getWriter(Filter filter, int flags) throws IOException { return getWriter(new Query(getSchema().getTypeName(), filter), flags); }
/** * Adds a collection of features to the store. * * <p>This method operates by getting an appending feature writer and writing all the features * in <tt>collection</tt> to it. Directly after a feature is written its id is obtained and * added to the returned set. */ public List<FeatureId> addFeatures(Collection collection) throws IOException { // gather up id's List<FeatureId> ids = new ArrayList<FeatureId>(collection.size()); FeatureWriter<SimpleFeatureType, SimpleFeature> writer = getWriterAppend(); try { for (Iterator f = collection.iterator(); f.hasNext(); ) { FeatureId id = addFeature((SimpleFeature) f.next(), writer); ids.add(id); } } finally { writer.close(); } return ids; }
/** * Returns a writer over features specified by a filter. * * @param filter The filter */ public final FeatureWriter<SimpleFeatureType, SimpleFeature> getWriter(Filter filter) throws IOException { return getWriter(filter, WRITER_ADD | WRITER_UPDATE); }
/** * Removes the features from the store which match the specified filter. * * <p>This method operates by obtaining an updating feature writer based on the specified * <tt>filter</tt> and removing every feature from it. * * <p>The <tt>filter</tt> must not be <code>null</code>, in this case this method will throw an * {@link IllegalArgumentException}. */ public void removeFeatures(Filter filter) throws IOException { if (filter == null) { String msg = "Must specify a filter, must not be null."; throw new IllegalArgumentException(msg); } filter = resolvePropertyNames(filter); // grab a feature writer FeatureWriter<SimpleFeatureType, SimpleFeature> writer = getWriter(filter, WRITER_UPDATE); try { // remove everything while (writer.hasNext()) { writer.next(); writer.remove(); } } finally { writer.close(); } } }
throws IOException { removeFeatures(Filter.INCLUDE); getWriter(Filter.INCLUDE, WRITER_ADD); try { while (reader.hasNext()) {
@Override public MongoDataStore getDataStore() { return (MongoDataStore) super.getDataStore(); }
super.removeFeatures(filter); } else {
/** * Returns a writer over features specified by a query. * * @param query The query */ public final FeatureWriter<SimpleFeatureType, SimpleFeature> getWriter(Query query) throws IOException { return getWriter(query, WRITER_ADD | WRITER_UPDATE); }
/** * Modifies/updates the features of the store which match the specified filter. * * <p>This method operates by obtaining an updating feature writer based on the specified * <tt>filter</tt> and writing the updated values to it. * * <p>The <tt>filter</tt> must not be <code>null</code>, in this case this method will throw an * {@link IllegalArgumentException}. */ public void modifyFeatures(Name[] type, Object[] value, Filter filter) throws IOException { if (filter == null) { String msg = "Must specify a filter, must not be null."; throw new IllegalArgumentException(msg); } filter = resolvePropertyNames(filter); // grab a feature writer FeatureWriter<SimpleFeatureType, SimpleFeature> writer = getWriter(filter, WRITER_UPDATE); try { while (writer.hasNext()) { SimpleFeature toWrite = writer.next(); for (int i = 0; i < type.length; i++) { toWrite.setAttribute(type[i], value[i]); } writer.write(); } } finally { writer.close(); } }
removeFeatures( Filter.INCLUDE ); FeatureWriter<SimpleFeatureType, SimpleFeature> writer = getWriter( Filter.INCLUDE, WRITER_ADD ); try { while( reader.hasNext() ) {
@Override public GeoWaveGTDataStore getDataStore() { // type narrow this method to prevent a lot of casts resulting in more // readable code. return (GeoWaveGTDataStore) super.getDataStore(); }
/** * Adds a collection of features to the store. * * @param featureCollection */ public List<FeatureId> addFeatures( FeatureCollection<SimpleFeatureType, SimpleFeature> featureCollection) throws IOException { // gather up id's List<FeatureId> ids = new ArrayList<FeatureId>(); FeatureWriter<SimpleFeatureType, SimpleFeature> writer = getWriterAppend(); FeatureIterator<SimpleFeature> f = featureCollection.features(); try { while (f.hasNext()) { SimpleFeature feature = f.next(); FeatureId id = addFeature(feature, writer); ids.add(id); } } finally { writer.close(); f.close(); } return ids; }
public void clear() { ContentFeatureStore featureStore = ensureFeatureStore(); try { featureStore.removeFeatures(query.getFilter()); } catch (IOException e) { throw new RuntimeException(e); } }
/** * Returns a writer over features specified by a filter. * * @param filter The filter * @param flags flags specifying writing mode */ public final FeatureWriter<SimpleFeatureType, SimpleFeature> getWriter( Filter filter, int flags ) throws IOException { return getWriter( new Query( getSchema().getTypeName(), filter ), flags ); }
query = joinQuery( query ); query = resolvePropertyNames(query); if (!canTransact() && transaction != null && transaction != Transaction.AUTO_COMMIT) { DiffTransactionState state = (DiffTransactionState) getTransaction().getState(getEntry()); FeatureReader<SimpleFeatureType, SimpleFeature> reader = getReader(query); writer = new DiffContentFeatureWriter(this, state.getDiff(), reader); } else { writer = getWriterInternal(query, flags); if (canTransact() && !canEvent()){ writer = new EventContentFeatureWriter(this, writer ); if (!canFilter()) { if (query.getFilter() != null && query.getFilter() != Filter.INCLUDE) { writer = new FilteringFeatureWriter(writer, query.getFilter()); if (!canLock()) { LockingManager lockingManager = getDataStore().getLockingManager(); writer = ((InProcessLockingManager) lockingManager).checkedWriter(writer, transaction);
@Override public void setTransaction(Transaction transaction) { // JD: note, we need to set both super and delegate transactions. super.setTransaction(transaction); // JD: this guard ensures that a recursive loop will not form if (delegate.getTransaction() != transaction) { delegate.setTransaction(transaction); } }
public final void modifyFeatures(String name, Object attributeValue, Filter filter) throws IOException { modifyFeatures( new Name[] { new NameImpl(name), }, new Object[] { attributeValue, }, filter); }