ReportNodeNoOp.java
/**
* Copyright (c) 2024, RTE (http://www.rte-france.com)
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
* SPDX-License-Identifier: MPL-2.0
*/
package com.powsybl.commons.report;
import com.fasterxml.jackson.core.JsonGenerator;
import java.io.IOException;
import java.io.Writer;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.Optional;
/**
* A default no-op implementation
* @author Florian Dupuy {@literal <florian.dupuy at rte-france.com>}
*/
public class ReportNodeNoOp implements ReportNode {
@Override
public ReportNodeAdder newReportNode() {
return new ChildAdder();
}
@Override
public TreeContext getTreeContext() {
return TreeContext.NO_OP;
}
@Override
public void include(ReportNode reportRoot) {
// No-op
}
@Override
public void addCopy(ReportNode reportNode) {
// No-op
}
@Override
public String getMessageKey() {
return null;
}
@Override
public String getMessageTemplate() {
return null;
}
@Override
public String getMessage(ReportFormatter formatter) {
return null;
}
@Override
public Map<String, TypedValue> getValues() {
return Collections.emptyMap();
}
@Override
public Optional<TypedValue> getValue(String valueKey) {
return Optional.empty();
}
@Override
public List<ReportNode> getChildren() {
return Collections.emptyList();
}
@Override
public void writeJson(JsonGenerator generator) throws IOException {
// No-op
}
@Override
public ReportNode addTypedValue(String key, String value, String type) {
return this;
}
@Override
public ReportNode addUntypedValue(String key, String value) {
return this;
}
@Override
public ReportNode addTypedValue(String key, double value, String type) {
return this;
}
@Override
public ReportNode addUntypedValue(String key, double value) {
return this;
}
@Override
public ReportNode addTypedValue(String key, float value, String type) {
return this;
}
@Override
public ReportNode addUntypedValue(String key, float value) {
return this;
}
@Override
public ReportNode addTypedValue(String key, int value, String type) {
return this;
}
@Override
public ReportNode addUntypedValue(String key, int value) {
return this;
}
@Override
public ReportNode addTypedValue(String key, long value, String type) {
return this;
}
@Override
public ReportNode addUntypedValue(String key, long value) {
return this;
}
@Override
public ReportNode addTypedValue(String key, boolean value, String type) {
return this;
}
@Override
public ReportNode addUntypedValue(String key, boolean value) {
return this;
}
@Override
public ReportNode addSeverity(TypedValue severity) {
return this;
}
@Override
public ReportNode addSeverity(String severity) {
return this;
}
@Override
public void print(Writer writer, ReportFormatter formatter) throws IOException {
// No-op
}
private static class ChildAdder implements ReportNodeAdder {
@Override
public ReportNode add() {
return new ReportNodeNoOp();
}
@Override
public ReportNodeAdder withMessageTemplateProvider(MessageTemplateProvider messageTemplateProvider) {
return this;
}
@Override
public ReportNodeAdder withMessageTemplate(String key, String bundleBaseName) {
return this;
}
@Override
public ReportNodeAdder withMessageTemplate(String key) {
return this;
}
@Override
public ReportNodeAdder withTypedValue(String key, String value, String type) {
return this;
}
@Override
public ReportNodeAdder withUntypedValue(String key, String value) {
return this;
}
@Override
public ReportNodeAdder withTypedValue(String key, double value, String type) {
return this;
}
@Override
public ReportNodeAdder withUntypedValue(String key, double value) {
return this;
}
@Override
public ReportNodeAdder withTypedValue(String key, float value, String type) {
return this;
}
@Override
public ReportNodeAdder withUntypedValue(String key, float value) {
return this;
}
@Override
public ReportNodeAdder withTypedValue(String key, int value, String type) {
return this;
}
@Override
public ReportNodeAdder withUntypedValue(String key, int value) {
return this;
}
@Override
public ReportNodeAdder withTypedValue(String key, long value, String type) {
return this;
}
@Override
public ReportNodeAdder withUntypedValue(String key, long value) {
return this;
}
@Override
public ReportNodeAdder withTypedValue(String key, boolean value, String type) {
return this;
}
@Override
public ReportNodeAdder withUntypedValue(String key, boolean value) {
return this;
}
@Override
public ReportNodeAdder withSeverity(TypedValue severity) {
return this;
}
@Override
public ReportNodeAdder withSeverity(String severity) {
return this;
}
@Override
public ReportNodeAdder withTimestamp() {
return this;
}
@Override
public ReportNodeAdder withTimestamp(String timestampPattern) {
return this;
}
}
}