From 7dc81f83508c7c588de9870993e256a69e1003f5 Mon Sep 17 00:00:00 2001 From: sk89q Date: Sun, 30 Mar 2014 13:48:15 -0700 Subject: [PATCH] Added preconditions to BreadthFirstSearch and subclasses. --- .../worldedit/function/visitor/BreadthFirstSearch.java | 5 ++++- .../worldedit/function/visitor/DownwardVisitor.java | 3 +++ .../sk89q/worldedit/function/visitor/LayerVisitor.java | 1 - .../worldedit/function/visitor/RecursiveVisitor.java | 9 +++++++++ 4 files changed, 16 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/sk89q/worldedit/function/visitor/BreadthFirstSearch.java b/src/main/java/com/sk89q/worldedit/function/visitor/BreadthFirstSearch.java index 153882333..95f099a67 100644 --- a/src/main/java/com/sk89q/worldedit/function/visitor/BreadthFirstSearch.java +++ b/src/main/java/com/sk89q/worldedit/function/visitor/BreadthFirstSearch.java @@ -27,6 +27,8 @@ import com.sk89q.worldedit.function.RegionFunction; import java.util.*; +import static com.google.common.base.Preconditions.checkNotNull; + /** * Performs a breadth-first search starting from points added with * {@link #visit(com.sk89q.worldedit.Vector)}. The search continues @@ -51,7 +53,8 @@ public abstract class BreadthFirstSearch implements Operation { * * @param function the function to apply to visited blocks */ - public BreadthFirstSearch(RegionFunction function) { + protected BreadthFirstSearch(RegionFunction function) { + checkNotNull(function); this.function = function; addAxes(); } diff --git a/src/main/java/com/sk89q/worldedit/function/visitor/DownwardVisitor.java b/src/main/java/com/sk89q/worldedit/function/visitor/DownwardVisitor.java index 3533eba0e..16072b243 100644 --- a/src/main/java/com/sk89q/worldedit/function/visitor/DownwardVisitor.java +++ b/src/main/java/com/sk89q/worldedit/function/visitor/DownwardVisitor.java @@ -25,6 +25,8 @@ import com.sk89q.worldedit.function.mask.Mask; import java.util.List; +import static com.google.common.base.Preconditions.checkNotNull; + /** * Visits adjacent points on the same X-Z plane as long as the points * pass the given mask, and then executes the provided region @@ -45,6 +47,7 @@ public class DownwardVisitor extends RecursiveVisitor { */ public DownwardVisitor(Mask mask, RegionFunction function, int baseY) { super(mask, function); + checkNotNull(mask); this.baseY = baseY; diff --git a/src/main/java/com/sk89q/worldedit/function/visitor/LayerVisitor.java b/src/main/java/com/sk89q/worldedit/function/visitor/LayerVisitor.java index a51bbc719..3437ec6d0 100644 --- a/src/main/java/com/sk89q/worldedit/function/visitor/LayerVisitor.java +++ b/src/main/java/com/sk89q/worldedit/function/visitor/LayerVisitor.java @@ -19,7 +19,6 @@ package com.sk89q.worldedit.function.visitor; -import com.sk89q.worldedit.EditSession; import com.sk89q.worldedit.Vector; import com.sk89q.worldedit.Vector2D; import com.sk89q.worldedit.WorldEditException; diff --git a/src/main/java/com/sk89q/worldedit/function/visitor/RecursiveVisitor.java b/src/main/java/com/sk89q/worldedit/function/visitor/RecursiveVisitor.java index 3bb013f6a..d6531b933 100644 --- a/src/main/java/com/sk89q/worldedit/function/visitor/RecursiveVisitor.java +++ b/src/main/java/com/sk89q/worldedit/function/visitor/RecursiveVisitor.java @@ -23,6 +23,8 @@ import com.sk89q.worldedit.Vector; import com.sk89q.worldedit.function.RegionFunction; import com.sk89q.worldedit.function.mask.Mask; +import static com.google.common.base.Preconditions.checkNotNull; + /** * An implementation of an {@link BreadthFirstSearch} that uses a mask to * determine where a block should be visited. @@ -31,8 +33,15 @@ public class RecursiveVisitor extends BreadthFirstSearch { private final Mask mask; + /** + * Create a new recursive visitor. + * + * @param mask the mask + * @param function the function + */ public RecursiveVisitor(Mask mask, RegionFunction function) { super(function); + checkNotNull(mask); this.mask = mask; }