// Path: json-unit-core/src/main/java/net/javacrumbs/jsonunit/core/listener/Difference.java
// public interface Difference {
//     enum Type {EXTRA, MISSING, DIFFERENT}
// 
//     /**
//      * Path to the difference
//      */
//     String getActualPath();
// 
//     /**
//      * Path to the expected element (may be different than actual path if IGNORE_ARRAY_ORDER is used)
//      */
//     String getExpectedPath();
// 
//     /**
//      * Actual node serialized as Map&lt;String, Object&gt; for objects, BigDecimal for numbers, ...
//      */
//     Object getActual();
// 
// 
//     /**
//      * Expected node serialized as Map&lt;String, Object&gt; for objects, BigDecimal for numbers, ...
//      */
//     Object getExpected();
// 
//     /**
//      * Type of the difference
//      */
//     Type getType();
// }
// 
// Path: json-unit-core/src/main/java/net/javacrumbs/jsonunit/core/listener/DifferenceContext.java
// public interface DifferenceContext {
// 
//     /**
//      * Configuration used for comparison.
//      */
//     Configuration getConfiguration();
// 
//     /**
//      * Actual source serialized as Map&lt;String, Object&gt; for objects, BigDecimal for numbers, ...
//      */
//     Object getActualSource();
// 
// 
//     /**
//      * Expected source serialized as Map&lt;String, Object&gt; for objects, BigDecimal for numbers, ...
//      */
//     Object getExpectedSource();
// }
// 
// Path: json-unit-core/src/main/java/net/javacrumbs/jsonunit/core/listener/DifferenceListener.java
// public interface DifferenceListener {
//     void diff(Difference difference, DifferenceContext context);
// }


import net.javacrumbs.jsonunit.core.listener.Difference;
import net.javacrumbs.jsonunit.core.listener.DifferenceContext;
import net.javacrumbs.jsonunit.core.listener.DifferenceListener;
import java.util.ArrayList;
import java.util.List;
/**
 * Copyright 2009-2019 the original author or authors.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package net.javacrumbs.jsonunit.test.base;



public class RecordingDifferenceListener implements DifferenceListener {
    private final List<Difference> differenceList = new ArrayList<>();

    @Override
// Path: json-unit-core/src/main/java/net/javacrumbs/jsonunit/core/listener/Difference.java
// public interface Difference {
//     enum Type {EXTRA, MISSING, DIFFERENT}
// 
//     /**
//      * Path to the difference
//      */
//     String getActualPath();
// 
//     /**
//      * Path to the expected element (may be different than actual path if IGNORE_ARRAY_ORDER is used)
//      */
//     String getExpectedPath();
// 
//     /**
//      * Actual node serialized as Map&lt;String, Object&gt; for objects, BigDecimal for numbers, ...
//      */
//     Object getActual();
// 
// 
//     /**
//      * Expected node serialized as Map&lt;String, Object&gt; for objects, BigDecimal for numbers, ...
//      */
//     Object getExpected();
// 
//     /**
//      * Type of the difference
//      */
//     Type getType();
// }
// 
// Path: json-unit-core/src/main/java/net/javacrumbs/jsonunit/core/listener/DifferenceContext.java
// public interface DifferenceContext {
// 
//     /**
//      * Configuration used for comparison.
//      */
//     Configuration getConfiguration();
// 
//     /**
//      * Actual source serialized as Map&lt;String, Object&gt; for objects, BigDecimal for numbers, ...
//      */
//     Object getActualSource();
// 
// 
//     /**
//      * Expected source serialized as Map&lt;String, Object&gt; for objects, BigDecimal for numbers, ...
//      */
//     Object getExpectedSource();
// }
// 
// Path: json-unit-core/src/main/java/net/javacrumbs/jsonunit/core/listener/DifferenceListener.java
// public interface DifferenceListener {
//     void diff(Difference difference, DifferenceContext context);
// }


// Path: tests/test-base/src/main/java/net/javacrumbs/jsonunit/test/base/RecordingDifferenceListener.java
import net.javacrumbs.jsonunit.core.listener.Difference;
import net.javacrumbs.jsonunit.core.listener.DifferenceContext;
import net.javacrumbs.jsonunit.core.listener.DifferenceListener;
import java.util.ArrayList;
import java.util.List;

/**
 * Copyright 2009-2019 the original author or authors.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package net.javacrumbs.jsonunit.test.base;



public class RecordingDifferenceListener implements DifferenceListener {
    private final List<Difference> differenceList = new ArrayList<>();

    @Override
    public void diff(Difference difference, DifferenceContext context) {