Pass entity array into validators instead of changes object

This commit is contained in:
Quincy Morgan
2019-01-24 15:26:19 -05:00
parent a259a9acf1
commit ffe4aa09f4
12 changed files with 38 additions and 45 deletions

View File

@@ -293,11 +293,11 @@ export function coreHistory(context) {
},
validate: function(changes) {
validate: function(entitiesToCheck) {
return _flatten(_map(
validations,
function(fn) {
return fn(context)(changes, _stack[_index].graph, _tree);
return fn(context)(entitiesToCheck, _stack[_index].graph, _tree);
}
));
},

View File

@@ -193,13 +193,12 @@ export function validationHighwayCrossingOtherWays(context) {
return edgeCrossInfos;
}
var validation = function(changes, graph, tree) {
var validation = function(entitiesToCheck, graph, tree) {
// create one issue per crossing point
var edited = changes.created.concat(changes.modified),
edgePairsVisited = d3_set(),
var edgePairsVisited = d3_set(),
issues = [];
for (var i = 0; i < edited.length; i++) {
var crosses = findCrossingsByWay(edited[i], graph, tree, edgePairsVisited);
for (var i = 0; i < entitiesToCheck.length; i++) {
var crosses = findCrossingsByWay(entitiesToCheck[i], graph, tree, edgePairsVisited);
for (var j = 0; j < crosses.length; j++) {
var crossing = crosses[j];

View File

@@ -17,11 +17,10 @@ import {
export function validationDeprecatedTag(context) {
var validation = function(changes) {
var edited = changes.created.concat(changes.modified),
issues = [];
for (var changeIndex in edited) {
var change = edited[changeIndex];
var validation = function(entitiesToCheck) {
var issues = [];
for (var changeIndex in entitiesToCheck) {
var change = entitiesToCheck[changeIndex];
var deprecatedTagsArray = change.deprecatedTags();
if (deprecatedTagsArray.length > 0) {
for (var deprecatedTagIndex in deprecatedTagsArray) {

View File

@@ -30,10 +30,10 @@ export function validationDisconnectedHighway(context) {
}
var validation = function(changes, graph) {
var validation = function(entitiesToCheck, graph) {
var issues = [];
for (var i = 0; i < changes.created.length; i++) {
var entity = changes.created[i];
for (var i = 0; i < entitiesToCheck.length; i++) {
var entity = entitiesToCheck[i];
if (isDisconnectedHighway(entity, graph)) {
var entityLabel = utilDisplayLabel(entity, context);
issues.push(new validationIssue({

View File

@@ -44,11 +44,11 @@ export function validationGenericName(context) {
}
return function validation(changes) {
return function validation(entitiesToCheck) {
var issues = [];
for (var i = 0; i < changes.created.length; i++) {
var change = changes.created[i];
for (var i = 0; i < entitiesToCheck.length; i++) {
var change = entitiesToCheck[i];
var generic = isGenericName(change);
if (generic) {
var preset = utilPreset(change, context);

View File

@@ -108,14 +108,13 @@ export function validationHighwayAlmostJunction(context) {
return null;
}
var validation = function(changes, graph, tree) {
var edited = changes.created.concat(changes.modified),
issues = [];
for (var i = 0; i < edited.length; i++) {
if (!isHighway(edited[i])) continue;
var extendableNodes = findConnectableEndNodesByExtension(edited[i], graph, tree);
var validation = function(entitiesToCheck, graph, tree) {
var issues = [];
for (var i = 0; i < entitiesToCheck.length; i++) {
var endHighway = entitiesToCheck[i];
if (!isHighway(endHighway)) continue;
var extendableNodes = findConnectableEndNodesByExtension(endHighway, graph, tree);
for (var j = 0; j < extendableNodes.length; j++) {
var endHighway = edited[i];
var node = extendableNodes[j].node;
var edgeHighway = graph.entity(extendableNodes[j].wid);

View File

@@ -40,7 +40,8 @@ export function IssueManager(context) {
self.validate = function() {
var changes = context.history().changes();
issues = context.history().validate(changes);
var entitiesToCheck = changes.created.concat(changes.modified);
issues = context.history().validate(entitiesToCheck);
dispatch.call('reload', self, issues);
};

View File

@@ -11,7 +11,7 @@ export function validationManyDeletions() {
var validation = function(changes, graph) {
var issues = [];
var nodes = 0, ways = 0, areas = 0, relations = 0;
/*
changes.deleted.forEach(function(c) {
if (c.type === 'node') { nodes++; }
else if (c.type === 'way' && c.geometry(graph) === 'line') { ways++; }
@@ -28,7 +28,7 @@ export function validationManyDeletions() {
),
}));
}
*/
return issues;
};

View File

@@ -1,21 +1,16 @@
import { services } from '../services';
export function validationMapCSSChecks() {
var validation = function(changes, graph) {
var validation = function(entitiesToCheck, graph) {
if (!services.maprules) return [];
var rules = services.maprules.validationRules();
var issues = [];
var createdModified = ['created', 'modified'];
for (var i = 0; i < rules.length; i++) {
var rule = rules[i];
for (var j = 0; j < createdModified.length; j++) {
var type = createdModified[j];
var entities = changes[type];
for (var k = 0; k < entities.length; k++) {
rule.findIssues(entities[k], graph, issues);
}
for (var j = 0; j < entitiesToCheck.length; j++) {
rule.findIssues(entitiesToCheck[j], graph, issues);
}
}

View File

@@ -19,12 +19,12 @@ export function validationMissingTag(context) {
graph.parentRelations(entity).length > 0;
}
var validation = function(changes, graph) {
var validation = function(entitiesToCheck, graph) {
var types = ['point', 'line', 'area', 'relation'];
var issues = [];
for (var i = 0; i < changes.created.length; i++) {
var change = changes.created[i];
for (var i = 0; i < entitiesToCheck.length; i++) {
var change = entitiesToCheck[i];
var geometry = change.geometry(graph);
if (types.indexOf(geometry) !== -1 && !hasTags(change, graph)) {

View File

@@ -13,10 +13,10 @@ import {
export function validationOldMultipolygon(context) {
return function validation(changes, graph) {
return function validation(entitiesToCheck, graph) {
var issues = [];
for (var i = 0; i < changes.created.length; i++) {
var entity = changes.created[i];
for (var i = 0; i < entitiesToCheck.length; i++) {
var entity = entitiesToCheck[i];
var mistaggedMultipolygon = osmIsSimpleMultipolygonOuterMember(entity, graph);
if (mistaggedMultipolygon) {
var multipolygonLabel = utilDisplayLabel(mistaggedMultipolygon, context);

View File

@@ -29,10 +29,10 @@ export function validationTagSuggestsArea() {
}
var validation = function(changes, graph) {
var validation = function(entitiesToCheck, graph) {
var issues = [];
for (var i = 0; i < changes.created.length; i++) {
var change = changes.created[i];
for (var i = 0; i < entitiesToCheck.length; i++) {
var change = entitiesToCheck[i];
var geometry = change.geometry(graph);
var suggestion = (geometry === 'line' ? tagSuggestsArea(change.tags) : undefined);