public List<FeatureInfo> insert(List<Feature> features) { Map<FeatureType, RevFeatureType> types = new HashMap<>(); List<FeatureInfo> rfIds = new ArrayList<>(); List<FeatureInfo> infos = Lists.transform(features, (f) -> { final String path = NodeRef.appendChild(f.getType().getName().getLocalPart(), f.getIdentifier().getID()); FeatureInfo fi; if (f instanceof FeatureToDelete) { fi = FeatureInfo.delete(path); } else { RevFeatureType rft = types.get(f.getType()); if (rft == null) { rft = RevFeatureTypeBuilder.build(f.getType()); repo.objectDatabase().put(rft); types.put(f.getType(), rft); } fi = FeatureInfo.insert(RevFeatureBuilder.build(f), rft.getId(), path); rfIds.add(fi); } return fi; }); repo.workingTree().insert(infos.iterator(), DefaultProgressListener.NULL); return rfIds; }
public List<FeatureInfo> insert(List<Feature> features) { Map<FeatureType, RevFeatureType> types = new HashMap<>(); List<FeatureInfo> rfIds = new ArrayList<>(); List<FeatureInfo> infos = Lists.transform(features, (f) -> { final String path = NodeRef.appendChild(f.getType().getName().getLocalPart(), f.getIdentifier().getID()); FeatureInfo fi; if (f instanceof FeatureToDelete) { fi = FeatureInfo.delete(path); } else { RevFeatureType rft = types.get(f.getType()); if (rft == null) { rft = RevFeatureType.builder().type(f.getType()).build(); repo.objectDatabase().put(rft); types.put(f.getType(), rft); } fi = FeatureInfo.insert(RevFeature.builder().build(f), rft.getId(), path); rfIds.add(fi); } return fi; }); repo.workingTree().insert(infos.iterator(), DefaultProgressListener.NULL); return rfIds; }