From ffe4aa09f40ddf7db8d7714046aa17c0efd89870 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Thu, 24 Jan 2019 15:26:19 -0500 Subject: [PATCH] Pass entity array into validators instead of changes object --- modules/core/history.js | 4 ++-- modules/validations/crossing_ways.js | 9 ++++----- modules/validations/deprecated_tag.js | 9 ++++----- modules/validations/disconnected_highway.js | 6 +++--- modules/validations/generic_name.js | 6 +++--- modules/validations/highway_almost_junction.js | 13 ++++++------- modules/validations/issue_manager.js | 3 ++- modules/validations/many_deletions.js | 4 ++-- modules/validations/mapcss_checks.js | 11 +++-------- modules/validations/missing_tag.js | 6 +++--- modules/validations/old_multipolygon.js | 6 +++--- modules/validations/tag_suggests_area.js | 6 +++--- 12 files changed, 38 insertions(+), 45 deletions(-) diff --git a/modules/core/history.js b/modules/core/history.js index af843b033..f4bc04fc7 100644 --- a/modules/core/history.js +++ b/modules/core/history.js @@ -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); } )); }, diff --git a/modules/validations/crossing_ways.js b/modules/validations/crossing_ways.js index e83e4ea75..108b16912 100644 --- a/modules/validations/crossing_ways.js +++ b/modules/validations/crossing_ways.js @@ -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]; diff --git a/modules/validations/deprecated_tag.js b/modules/validations/deprecated_tag.js index b6d46f7e1..d798d1e05 100644 --- a/modules/validations/deprecated_tag.js +++ b/modules/validations/deprecated_tag.js @@ -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) { diff --git a/modules/validations/disconnected_highway.js b/modules/validations/disconnected_highway.js index 42ef61238..c8efb4c9b 100644 --- a/modules/validations/disconnected_highway.js +++ b/modules/validations/disconnected_highway.js @@ -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({ diff --git a/modules/validations/generic_name.js b/modules/validations/generic_name.js index fbc2683e5..fa2ec56e8 100644 --- a/modules/validations/generic_name.js +++ b/modules/validations/generic_name.js @@ -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); diff --git a/modules/validations/highway_almost_junction.js b/modules/validations/highway_almost_junction.js index d32a91907..46f151c1c 100644 --- a/modules/validations/highway_almost_junction.js +++ b/modules/validations/highway_almost_junction.js @@ -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); diff --git a/modules/validations/issue_manager.js b/modules/validations/issue_manager.js index 3a74a1b47..ef93e6fd9 100644 --- a/modules/validations/issue_manager.js +++ b/modules/validations/issue_manager.js @@ -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); }; diff --git a/modules/validations/many_deletions.js b/modules/validations/many_deletions.js index e60c03e66..580d31e8f 100644 --- a/modules/validations/many_deletions.js +++ b/modules/validations/many_deletions.js @@ -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; }; diff --git a/modules/validations/mapcss_checks.js b/modules/validations/mapcss_checks.js index 9832c48f8..5bae6425e 100644 --- a/modules/validations/mapcss_checks.js +++ b/modules/validations/mapcss_checks.js @@ -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); } } diff --git a/modules/validations/missing_tag.js b/modules/validations/missing_tag.js index 269412057..1f3d9d92a 100644 --- a/modules/validations/missing_tag.js +++ b/modules/validations/missing_tag.js @@ -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)) { diff --git a/modules/validations/old_multipolygon.js b/modules/validations/old_multipolygon.js index 6305a9a90..12f43a2e4 100644 --- a/modules/validations/old_multipolygon.js +++ b/modules/validations/old_multipolygon.js @@ -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); diff --git a/modules/validations/tag_suggests_area.js b/modules/validations/tag_suggests_area.js index 1990ebe38..2496f28f8 100644 --- a/modules/validations/tag_suggests_area.js +++ b/modules/validations/tag_suggests_area.js @@ -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);