package click.kamil.springstatemachineexporter.analysis.model;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.Builder;
import lombok.Getter;
import lombok.extern.jackson.Jacksonized;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Map;

@Getter
@Builder(toBuilder = true)
@Jacksonized
@JsonIgnoreProperties(ignoreUnknown = true)
public class CodebaseMetadata {
    @Builder.Default
    private final List<TriggerPoint> triggers = Collections.emptyList();
    @Builder.Default
    private final List<EntryPoint> entryPoints = Collections.emptyList();
    @Builder.Default
    private final List<CallChain> callChains = Collections.emptyList();
    @Builder.Default
    private final Map<String, Map<String, String>> properties = Collections.emptyMap();

    public static CodebaseMetadata empty() {
        return CodebaseMetadata.builder().build();
    }
}
