// Path: src/main/java/pl/jalokim/propertiestojson/object/AbstractJsonType.java
// public abstract class AbstractJsonType {
// 
//     /**
//      * This one simply concatenate to rest of json. Simply speaking when will not converted then will not create whole json correctly.
//      *
//      * @return string for part of json.
//      */
//     public abstract String toStringJson();
// 
//     @Override
//     public final String toString() {
//         return toStringJson();
//     }
// }


import com.google.common.annotations.VisibleForTesting;
import pl.jalokim.propertiestojson.object.AbstractJsonType;
package pl.jalokim.propertiestojson.util.exception;


public class CannotOverrideFieldException extends RuntimeException {

    private static final long serialVersionUID = 1L;

    private static final String CANNOT_OVERRIDE_VALUE = "Cannot override value at path: '%s', current value is: '%s', problematic property key: '%s'";

// Path: src/main/java/pl/jalokim/propertiestojson/object/AbstractJsonType.java
// public abstract class AbstractJsonType {
// 
//     /**
//      * This one simply concatenate to rest of json. Simply speaking when will not converted then will not create whole json correctly.
//      *
//      * @return string for part of json.
//      */
//     public abstract String toStringJson();
// 
//     @Override
//     public final String toString() {
//         return toStringJson();
//     }
// }


// Path: src/main/java/pl/jalokim/propertiestojson/util/exception/CannotOverrideFieldException.java
import com.google.common.annotations.VisibleForTesting;
import pl.jalokim.propertiestojson.object.AbstractJsonType;

package pl.jalokim.propertiestojson.util.exception;


public class CannotOverrideFieldException extends RuntimeException {

    private static final long serialVersionUID = 1L;

    private static final String CANNOT_OVERRIDE_VALUE = "Cannot override value at path: '%s', current value is: '%s', problematic property key: '%s'";

    public CannotOverrideFieldException(String currentPath, AbstractJsonType currentValue, String propertyKey) {