|
30 | 30 | import org.neo4j.gds.cliqueCounting.CliqueCountingResult; |
31 | 31 | import org.neo4j.gds.cliquecounting.CliqueCountingParameters; |
32 | 32 | import org.neo4j.gds.collections.ha.HugeLongArray; |
33 | | -import org.neo4j.gds.community.validation.ApproxMaxKCutValidation; |
34 | | -import org.neo4j.gds.community.validation.SpeakerListenerLPAGraphStoreValidation; |
35 | | -import org.neo4j.gds.community.validation.TriangleCountGraphStoreValidation; |
| 33 | +import org.neo4j.gds.community.validation.MinCommunitySizeSumRequirement; |
| 34 | +import org.neo4j.gds.community.validation.SpeakerListenerLPAGraphStoreRequirements; |
| 35 | +import org.neo4j.gds.community.validation.TriangleCountGraphStoreRequirements; |
36 | 36 | import org.neo4j.gds.conductance.ConductanceParameters; |
37 | 37 | import org.neo4j.gds.conductance.ConductanceResult; |
38 | 38 | import org.neo4j.gds.core.JobId; |
39 | 39 | import org.neo4j.gds.core.loading.GraphStoreCatalogService; |
40 | | -import org.neo4j.gds.core.loading.validation.CompoundGraphStoreValidationsBuilder; |
41 | | -import org.neo4j.gds.core.loading.validation.NoAlgorithmValidation; |
42 | | -import org.neo4j.gds.core.loading.validation.NodePropertyAllExistsGraphStoreValidation; |
43 | | -import org.neo4j.gds.core.loading.validation.NodePropertyAnyExistsGraphStoreValidation; |
44 | | -import org.neo4j.gds.core.loading.validation.NodePropertyTypeGraphStoreValidation; |
45 | | -import org.neo4j.gds.core.loading.validation.SeedPropertyGraphStoreValidation; |
46 | | -import org.neo4j.gds.core.loading.validation.UndirectedOnlyGraphStoreValidation; |
| 40 | +import org.neo4j.gds.core.loading.validation.AlgorithmGraphStoreRequirementsBuilder; |
| 41 | +import org.neo4j.gds.core.loading.validation.GraphStoreValidation; |
| 42 | +import org.neo4j.gds.core.loading.validation.NoAlgorithmRequirements; |
| 43 | +import org.neo4j.gds.core.loading.validation.NodePropertyMustExistOnAllLabels; |
| 44 | +import org.neo4j.gds.core.loading.validation.NodePropertyMustExistOnAnyLabel; |
| 45 | +import org.neo4j.gds.core.loading.validation.NodePropertyTypeRequirement; |
| 46 | +import org.neo4j.gds.core.loading.validation.SeedPropertyGraphStoreRequirement; |
| 47 | +import org.neo4j.gds.core.loading.validation.UndirectedOnlyRequirement; |
47 | 48 | import org.neo4j.gds.core.utils.paged.dss.DisjointSetStruct; |
48 | 49 | import org.neo4j.gds.hdbscan.HDBScanParameters; |
49 | 50 | import org.neo4j.gds.hdbscan.Labels; |
@@ -115,7 +116,7 @@ public <TR> CompletableFuture<TR> approxMaxKCut( |
115 | 116 | graphName, |
116 | 117 | graphParameters, |
117 | 118 | relationshipProperty, |
118 | | - new ApproxMaxKCutValidation(parameters.minCommunitySizes()), |
| 119 | + new GraphStoreValidation(new MinCommunitySizeSumRequirement(parameters.minCommunitySizes())), |
119 | 120 | Optional.empty(), |
120 | 121 | user, |
121 | 122 | databaseId |
@@ -144,7 +145,7 @@ public <TR> CompletableFuture<TR> cliqueCounting( |
144 | 145 | graphName, |
145 | 146 | graphParameters, |
146 | 147 | Optional.empty(), |
147 | | - new UndirectedOnlyGraphStoreValidation("Clique Counting"), |
| 148 | + new GraphStoreValidation(new UndirectedOnlyRequirement("Clique Counting")), |
148 | 149 | Optional.empty(), |
149 | 150 | user, |
150 | 151 | databaseId |
@@ -174,7 +175,7 @@ public <TR> CompletableFuture<TR> conductance( |
174 | 175 | graphName, |
175 | 176 | graphParameters, |
176 | 177 | relationshipProperty, |
177 | | - new NodePropertyAnyExistsGraphStoreValidation("communityProperty"), |
| 178 | + new GraphStoreValidation(new NodePropertyMustExistOnAnyLabel("communityProperty")), |
178 | 179 | Optional.empty(), |
179 | 180 | user, |
180 | 181 | databaseId |
@@ -203,7 +204,7 @@ public <TR> CompletableFuture<TR> hdbscan( |
203 | 204 | graphName, |
204 | 205 | graphParameters, |
205 | 206 | Optional.empty(), |
206 | | - new NodePropertyAnyExistsGraphStoreValidation("nodeProperty"), |
| 207 | + new GraphStoreValidation(new NodePropertyMustExistOnAnyLabel("nodeProperty")), |
207 | 208 | Optional.empty(), |
208 | 209 | user, |
209 | 210 | databaseId |
@@ -232,7 +233,7 @@ public <TR> CompletableFuture<TR> k1Coloring( |
232 | 233 | graphName, |
233 | 234 | graphParameters, |
234 | 235 | Optional.empty(), |
235 | | - new NoAlgorithmValidation(), |
| 236 | + new GraphStoreValidation(new NoAlgorithmRequirements()), |
236 | 237 | Optional.empty(), |
237 | 238 | user, |
238 | 239 | databaseId |
@@ -261,7 +262,7 @@ public <TR> CompletableFuture<TR> kCoreDecomposition( |
261 | 262 | graphName, |
262 | 263 | graphParameters, |
263 | 264 | Optional.empty(), |
264 | | - new UndirectedOnlyGraphStoreValidation("K-Core-Decomposition"), |
| 265 | + new GraphStoreValidation(new UndirectedOnlyRequirement("K-Core-Decomposition")), |
265 | 266 | Optional.empty(), |
266 | 267 | user, |
267 | 268 | databaseId |
@@ -290,10 +291,10 @@ public <TR> CompletableFuture<TR> kMeans( |
290 | 291 | graphName, |
291 | 292 | graphParameters, |
292 | 293 | Optional.empty(), |
293 | | - new NodePropertyTypeGraphStoreValidation( |
| 294 | + new GraphStoreValidation(new NodePropertyTypeRequirement( |
294 | 295 | "nodeProperty", |
295 | 296 | List.of(ValueType.DOUBLE_ARRAY, ValueType.FLOAT_ARRAY, ValueType.DOUBLE) |
296 | | - ), |
| 297 | + )), |
297 | 298 | Optional.empty(), |
298 | 299 | user, |
299 | 300 | databaseId |
@@ -323,9 +324,9 @@ public <TR> CompletableFuture<TR> labelPropagation( |
323 | 324 | graphName, |
324 | 325 | graphParameters, |
325 | 326 | relationshipProperty, |
326 | | - new CompoundGraphStoreValidationsBuilder() |
327 | | - .withGraphStoreValidation(SeedPropertyGraphStoreValidation.create(parameters.seedProperty())) |
328 | | - .withGraphStoreValidation(new NodePropertyAllExistsGraphStoreValidation(parameters.nodeWeightProperty())) |
| 327 | + new AlgorithmGraphStoreRequirementsBuilder() |
| 328 | + .withAlgorithmRequirement(SeedPropertyGraphStoreRequirement.create(Optional.ofNullable(parameters.seedProperty()))) |
| 329 | + .withAlgorithmRequirement(new NodePropertyMustExistOnAllLabels(parameters.nodeWeightProperty())) |
329 | 330 | .build(), |
330 | 331 | Optional.empty(), |
331 | 332 | user, |
@@ -355,9 +356,9 @@ public <TR> CompletableFuture<TR> lcc( |
355 | 356 | graphName, |
356 | 357 | graphParameters, |
357 | 358 | Optional.empty(), |
358 | | - new CompoundGraphStoreValidationsBuilder() |
359 | | - .withGraphStoreValidation(new UndirectedOnlyGraphStoreValidation("LocalClusteringCoefficient")) |
360 | | - .withGraphStoreValidation(SeedPropertyGraphStoreValidation.create(parameters.seedProperty())) |
| 359 | + new AlgorithmGraphStoreRequirementsBuilder() |
| 360 | + .withAlgorithmRequirement(new UndirectedOnlyRequirement("LocalClusteringCoefficient")) |
| 361 | + .withAlgorithmRequirement(SeedPropertyGraphStoreRequirement.create(Optional.ofNullable(parameters.seedProperty()))) |
361 | 362 | .build(), |
362 | 363 | Optional.empty(), |
363 | 364 | user, |
@@ -388,9 +389,9 @@ public <TR> CompletableFuture<TR> leiden( |
388 | 389 | graphName, |
389 | 390 | graphParameters, |
390 | 391 | relationshipProperty, |
391 | | - new CompoundGraphStoreValidationsBuilder() |
392 | | - .withGraphStoreValidation(new UndirectedOnlyGraphStoreValidation("Leiden")) |
393 | | - .withGraphStoreValidation(SeedPropertyGraphStoreValidation.create(parameters.seedProperty())) |
| 392 | + new AlgorithmGraphStoreRequirementsBuilder() |
| 393 | + .withAlgorithmRequirement(new UndirectedOnlyRequirement("Leiden")) |
| 394 | + .withAlgorithmRequirement(SeedPropertyGraphStoreRequirement.create(Optional.ofNullable(parameters.seedProperty()))) |
394 | 395 | .build(), |
395 | 396 | Optional.empty(), |
396 | 397 | user, |
@@ -421,7 +422,7 @@ public <TR> CompletableFuture<TR> louvain( |
421 | 422 | graphName, |
422 | 423 | graphParameters, |
423 | 424 | relationshipProperty, |
424 | | - SeedPropertyGraphStoreValidation.create(parameters.seedProperty()), |
| 425 | + new GraphStoreValidation(SeedPropertyGraphStoreRequirement.create(Optional.ofNullable(parameters.seedProperty()))), |
425 | 426 | Optional.empty(), |
426 | 427 | user, |
427 | 428 | databaseId |
@@ -450,7 +451,7 @@ public <TR> CompletableFuture<TR> modularity( |
450 | 451 | graphName, |
451 | 452 | graphParameters, |
452 | 453 | relationshipProperty, |
453 | | - new NodePropertyAnyExistsGraphStoreValidation("communityProperty"), |
| 454 | + new GraphStoreValidation(new NodePropertyMustExistOnAnyLabel("communityProperty")), |
454 | 455 | Optional.empty(), |
455 | 456 | user, |
456 | 457 | databaseId |
@@ -479,7 +480,7 @@ public <TR> CompletableFuture<TR> modularityOptimization( |
479 | 480 | graphName, |
480 | 481 | graphParameters, |
481 | 482 | relationshipProperty, |
482 | | - SeedPropertyGraphStoreValidation.create(parameters.seedProperty().orElse(null)), |
| 483 | + new GraphStoreValidation(SeedPropertyGraphStoreRequirement.create(parameters.seedProperty())), |
483 | 484 | Optional.empty(), |
484 | 485 | user, |
485 | 486 | databaseId |
@@ -508,7 +509,7 @@ public <TR> CompletableFuture<TR> scc( |
508 | 509 | graphName, |
509 | 510 | graphParameters, |
510 | 511 | Optional.empty(), |
511 | | - new NoAlgorithmValidation(), |
| 512 | + new GraphStoreValidation(new NoAlgorithmRequirements()), |
512 | 513 | Optional.empty(), |
513 | 514 | user, |
514 | 515 | databaseId |
@@ -537,7 +538,7 @@ public <TR> CompletableFuture<TR> sllpa( |
537 | 538 | graphName, |
538 | 539 | graphParameters, |
539 | 540 | Optional.empty(), |
540 | | - new SpeakerListenerLPAGraphStoreValidation(config.writeProperty()), |
| 541 | + new GraphStoreValidation(new SpeakerListenerLPAGraphStoreRequirements(config.writeProperty())), |
541 | 542 | Optional.empty(), |
542 | 543 | user, |
543 | 544 | databaseId |
@@ -565,7 +566,7 @@ public <TR> CompletableFuture<TR> triangleCount( |
565 | 566 | graphName, |
566 | 567 | graphParameters, |
567 | 568 | Optional.empty(), |
568 | | - TriangleCountGraphStoreValidation.create(parameters.labelFilter()), |
| 569 | + new GraphStoreValidation(TriangleCountGraphStoreRequirements.create(parameters.labelFilter())), |
569 | 570 | Optional.empty(), |
570 | 571 | user, |
571 | 572 | databaseId |
@@ -594,7 +595,7 @@ public <TR> CompletableFuture<TR> triangles( |
594 | 595 | graphName, |
595 | 596 | graphParameters, |
596 | 597 | Optional.empty(), |
597 | | - TriangleCountGraphStoreValidation.create(parameters.labelFilter()), |
| 598 | + new GraphStoreValidation(TriangleCountGraphStoreRequirements.create(parameters.labelFilter())), |
598 | 599 | Optional.empty(), |
599 | 600 | user, |
600 | 601 | databaseId |
@@ -622,7 +623,7 @@ public <TR> CompletableFuture<TR> wcc( |
622 | 623 | graphName, |
623 | 624 | graphParameters, |
624 | 625 | relationshipProperty, |
625 | | - SeedPropertyGraphStoreValidation.create(parameters.seedProperty().orElse(null)), |
| 626 | + new GraphStoreValidation(SeedPropertyGraphStoreRequirement.create(parameters.seedProperty())), |
626 | 627 | Optional.empty(), |
627 | 628 | user, |
628 | 629 | databaseId |
|
0 commit comments