All Downloads are FREE. Search and download functionalities are using the official Maven repository.

pl.jalokim.propertiestojson.object.MergableObject Maven / Gradle / Ivy

There is a newer version: 5.3.0
Show newest version
package pl.jalokim.propertiestojson.object;

import pl.jalokim.propertiestojson.path.PathMetadata;
import pl.jalokim.propertiestojson.util.exception.MergeObjectException;

@SuppressWarnings("unchecked")
public interface MergableObject {
    void merge(T mergeWith, PathMetadata currentPathMetadata);

    static void mergeObjectIfPossible(AbstractJsonType oldJsonElement, AbstractJsonType elementToAdd, PathMetadata currentPathMetadata) {
        MergableObject oldObject = (MergableObject) oldJsonElement;
        if (oldObject.getClass().isAssignableFrom(elementToAdd.getClass())) {
            oldObject.merge(elementToAdd, currentPathMetadata);
        } else {
            throw new MergeObjectException(oldJsonElement, elementToAdd, currentPathMetadata);
        }
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy