public static InsertElementType unadapt(Insert insert) { if (insert instanceof WFS11) { return (InsertElementType) insert.getAdaptee(); } InsertElementType ie = WfsFactory.eINSTANCE.createInsertElementType(); ie.setHandle(insert.getHandle()); ie.getFeature().addAll(insert.getFeatures()); return ie; } }
/** * Takes an update and transforms it in an insert if the feature type is versioned, leave it as * is otherwise */ private TransactionElement transformUpdate( TransactionRequest request, Update update, Date referenceTime) throws IOException { FeatureTypeInfo featureTypeInfo = getFeatureTypeInfo(new NameImpl(update.getTypeName())); if (!TimeVersioning.isEnabled(featureTypeInfo)) { return update; } SimpleFeatureCollection features = getTransactionFeatures(update); List<SimpleFeature> recent = getMostRecentFeatures(features, featureTypeInfo); List<SimpleFeature> newFeatures = recent.stream() .map(f -> prepareInsertFeature(f, update, referenceTime)) .collect(Collectors.toList()); Insert insert = request.createInsert(); insert.setHandle(update.getHandle()); insert.getFeatures().addAll(newFeatures); return insert; }
List featureList = insert.getFeatures(); for (Iterator f = featureList.iterator(); f.hasNext(); ) { SimpleFeature feature = (SimpleFeature) f.next(); if (insert.isIdGenUseExisting()) { feature.getUserData().put(Hints.USE_PROVIDED_FID, true); } else { Object identifier = feature.getAttribute(new NameImpl(GML.NAMESPACE, "identifier")); if (WFSInfo.Version.V_20.compareTo(insert.getVersion()) >= 0 && identifier instanceof String) { SimpleFeatureBuilder fb = FeatureId fid = fids.removeFirst(); response.addInsertedFeature(insert.getHandle(), fid); } catch (Exception e) { String msg = "Error performing insert: " + e.getMessage(); throw new WFSTransactionException(msg, e, insert.getHandle());
List features = insert.getFeatures(); if (!features.isEmpty()) { for (Iterator f = features.iterator(); f.hasNext(); ) {
@Override public void setElements(List<TransactionElement> elements) { TransactionType tx = (TransactionType) adaptee; tx.getInsert().clear(); tx.getDelete().clear(); tx.getUpdate().clear(); for (TransactionElement element : elements) { if (element instanceof Insert) { tx.getInsert().add(((Insert) element).getAdaptee()); } else if (element instanceof Update) { tx.getUpdate().add(((Update) element).getAdaptee()); } else if (element instanceof Delete) { tx.getDelete().add(((Delete) element).getAdaptee()); } // no replace in wfs 1.1, cannot be there } }
public static TransactionRequest replaceWithFixedRoadsInsert( Catalog catalog, TransactionRequest request) { List<TransactionElement> transactionElements = new ArrayList<>(); // create an insert Insert insert = request.createInsert(); List<SimpleFeature> features = new ArrayList<>(); try { SimpleFeatureType schema = (SimpleFeatureType) catalog.getFeatureTypeByName(MockData.ROAD_SEGMENTS.getLocalPart()) .getFeatureType(); Geometry geometry = new WKTReader().read("MULTILINESTRING((0 0, 1 1))"); SimpleFeature feature = SimpleFeatureBuilder.build( schema, new Object[] {geometry, "107", "New Road"}, null); features.add(feature); } catch (Exception e) { throw new RuntimeException(e); } insert.setFeatures(features); transactionElements.add(insert); request.setElements(transactionElements); return request; }
for (Object of : ((Insert) element).getFeatures()) { if (of instanceof SimpleFeature) { setTimeAttribute((SimpleFeature) of, referenceTime);
public static TransactionRequest defaultTransformation( Catalog catalog, TransactionRequest request) { for (TransactionElement element : request.getElements()) { if (element instanceof Insert) { for (Object f : ((Insert) element).getFeatures()) { SimpleFeature sf = (SimpleFeature) f; if ("Points".equals(sf.getType().getTypeName())) { // check inserts can be modified sf.setAttribute("id", sf.getAttribute("id") + "-modified"); } } } else if (element instanceof Update) { Update update = (Update) element; List<Property> updateProperties = update.getUpdateProperties(); Property property = update.createProperty(); property.setName(new QName(null, "NAME")); property.setValue(FOLSOM_STREET); updateProperties.add(property); update.setUpdateProperties(updateProperties); } else if (element instanceof Delete) { try { // mass delete more than requested ((Delete) element).setFilter(CQL.toFilter("FID > 102")); } catch (CQLException e) { throw new WFSException(e); } } } return request; }
List features = in.getFeatures(); ensureFeatureNamespaceUriMatches(features, ns, t); } else if (el instanceof Replace) {