diff --git a/src/main/java/com/github/fge/jsonschema/processors/data/FullData.java b/src/main/java/com/github/fge/jsonschema/processors/data/FullData.java index 09ecd12c0..6018b1874 100644 --- a/src/main/java/com/github/fge/jsonschema/processors/data/FullData.java +++ b/src/main/java/com/github/fge/jsonschema/processors/data/FullData.java @@ -20,12 +20,18 @@ package com.github.fge.jsonschema.processors.data; +import com.github.fge.jsonschema.core.ref.JsonRef; import com.github.fge.jsonschema.core.report.MessageProvider; import com.github.fge.jsonschema.core.report.ProcessingMessage; import com.github.fge.jsonschema.core.tree.JsonTree; import com.github.fge.jsonschema.core.tree.SchemaTree; +import com.google.common.base.Function; +import com.google.common.base.Preconditions; +import com.google.common.collect.Iterables; +import com.google.common.collect.Queues; -import javax.annotation.concurrent.Immutable; +import javax.annotation.ParametersAreNonnullByDefault; +import java.util.Deque; /** * Validation data for a validation processor @@ -41,19 +47,27 @@ *
The {@link ProcessingMessage} template generated contains information * about both the schema and instance.
*/ -@Immutable +// TODO: rework, rename; nulls are badly handled, etc +@ParametersAreNonnullByDefault public final class FullData implements MessageProvider { - private final SchemaTree schema; - private final JsonTree instance; + private SchemaTree schema; + private JsonTree instance; private final boolean deepCheck; + /* + * Deque of SchemaTrees we had to go through during validation of a + * particular instance/pointer pair; when the latter changes,the deque is + * emptied. + */ + private final Deque