@@ -0,0 +1,2115 @@
+/*%0ACopyright 2020 Google LLC%0A%0ALicensed under the Apache License, Version 2.0 (the %22License%22);%0Ayou may not use this file except in compliance with the License.%0AYou may obtain a copy of the License at%0A%0Ahttps://www.apache.org/licenses/LICENSE-2.0%0A%0AUnless required by applicable law or agreed to in writing, software%0Adistributed under the License is distributed on an %22AS IS%22 BASIS,%0AWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.%0ASee the License for the specific language governing permissions and%0Alimitations under the License.%0A*/%0A%0Aimport java.util.Objects;%0A%0Apublic class Conflict %7B%0A  private String keypath;%0A%0A  private Object optionA;%0A  private Object optionB;%0A  private Object resolvedValue;%0A%0A  /**%0A   * The default constructor is needed for com.fasterxml.jackson.databind.ObjectMapper which is used%0A   * in the %7B@code ConflictStringToConflictMapConverter%7D class%0A   */%0A  public Conflict() %7B%0A    this.keypath = %22%22;%0A    this.optionA = %22%22;%0A    this.optionB = %22%22;%0A    this.resolvedValue = %22%22;%0A  %7D%0A%0A  public Conflict(String keypath, Object optionA, Object optionB) %7B%0A    this.keypath = keypath;%0A    this.optionA = optionA;%0A    this.optionB = optionB;%0A  %7D%0A%0A  /**%0A   * getters are required for serialization of JSON string to conflict objects%0A   */%0A  public Object getOptionA() %7B%0A    return optionA;%0A  %7D%0A%0A  public Object getOptionB() %7B%0A    return optionB;%0A  %7D%0A%0A  public String getKeypath() %7B%0A    return keypath;%0A  %7D%0A%0A  public Object getResolvedValue() %7B%0A    return resolvedValue;%0A  %7D%0A%0A  @Override%0A  public boolean equals(Object o) %7B%0A    Conflict conflict = (Conflict) o;%0A    return keypath.equals(conflict.keypath)%0A        && optionA.equals(conflict.optionA)%0A        && optionB.equals(conflict.optionB)%0A        && Objects.equals(resolvedValue, conflict.resolvedValue);%0A  %7D%0A%0A  @Override%0A  public String toString() %7B%0A    return %22Conflict%7B%22%0A        + %22keypath='%22%0A        + keypath%0A        + '%5C''%0A        + %22, optionA='%22%0A        + optionA%0A        + '%5C''%0A        + %22, optionB='%22%0A        + optionB%0A        + '%5C''%0A        + %22, resolvedValue='%22%0A        + resolvedValue%0A        + '%5C''%0A        + '%7D';%0A  %7D%0A%7D%0A

add conflict class