Class YamlMerger

java.lang.Object
com.pragma.archetype.domain.service.YamlMerger

public class YamlMerger extends Object
Service for intelligently merging YAML configurations. Preserves existing values and only adds new properties. Detects conflicts when the same key exists with different values.
  • Constructor Details

    • YamlMerger

      public YamlMerger()
  • Method Details

    • merge

      public MergeResult merge(Map<String,Object> base, Map<String,Object> overlay)
      Merges overlay map into base map, preserving existing values. Only adds properties that don't already exist in the base.
      Parameters:
      base - The existing configuration map
      overlay - The new properties to merge
      Returns:
      MergeResult containing merged data, conflicts, and added keys
    • deepMerge

      public Map<String,Object> deepMerge(Map<String,Object> base, Map<String,Object> overlay)
      Performs deep merge of nested map structures. Recursively merges nested maps while preserving existing values.
      Parameters:
      base - The base map to merge into
      overlay - The overlay map to merge from
      Returns:
      The merged map
    • hasConflict

      public boolean hasConflict(Map<String,Object> base, Map<String,Object> overlay, String key)
      Checks if merging overlay into base would cause a conflict for the given key. A conflict occurs when the key exists in both maps with different values.
      Parameters:
      base - The base map
      overlay - The overlay map
      key - The key to check
      Returns:
      true if there would be a conflict, false otherwise