aboutsummaryrefslogtreecommitdiffstats
path: root/config-model/src/main/java/com/yahoo/vespa/model/application/validation/change/search/ChangeMessageBuilder.java
blob: 16975f56667fa1855f274996dee6a86ab524c368 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.vespa.model.application.validation.change.search;

import java.util.ArrayList;
import java.util.List;

/**
 * Builder of a message describing the changes in a given field.
 *
 * @author geirst
 */
public class ChangeMessageBuilder {

    private final String fieldName;
    private final List<String> changes = new ArrayList<>();

    public ChangeMessageBuilder(String fieldName) {
        this.fieldName = fieldName;
    }

    public String build() {
        return "Field '" + fieldName + "' changed: " + String.join(", ", changes);
    }

    public ChangeMessageBuilder addChange(String component, String from, String to) {
        changes.add(component + ": '" + from + "' -> '" + to + "'");
        return this;
    }

    public ChangeMessageBuilder addChange(String message) {
        changes.add(message);
        return this;
    }

}