MetrixToolLogger.java
/*
* Copyright (c) 2021, 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.metrix.integration;
import com.google.common.base.Stopwatch;
import java.io.PrintStream;
import java.util.Objects;
import java.util.concurrent.TimeUnit;
/**
* @author Valentin Berthault {@literal <valentin.berthault at rte-france.com>}
*/
public class MetrixToolLogger implements MetrixChunkLogger {
private final PrintStream out;
private final Stopwatch stopwatch = Stopwatch.createUnstarted();
public MetrixToolLogger(PrintStream out) {
this.out = Objects.requireNonNull(out);
}
@Override
public void beforeNetworkWriting() {
stopwatch.reset();
out.println("Writing DIE...");
stopwatch.start();
}
@Override
public void afterNetworkWriting() {
stopwatch.stop();
out.println("DIE written in " + stopwatch.elapsed(TimeUnit.MILLISECONDS) + " ms");
}
@Override
public void beforeVariantsWriting() {
stopwatch.reset();
out.println("Writing variants...");
stopwatch.start();
}
@Override
public void afterVariantsWriting(int variantCount) {
stopwatch.stop();
out.println(variantCount + " variants written in " +
stopwatch.elapsed(TimeUnit.MILLISECONDS) + " ms");
}
@Override
public void beforeMetrixExecution() {
stopwatch.reset();
out.println("Running Metrix...");
stopwatch.start();
}
@Override
public void afterMetrixExecution() {
stopwatch.stop();
out.println("Metrix ran in " + stopwatch.elapsed(TimeUnit.SECONDS) + " s");
}
@Override
public void beforeResultParsing() {
stopwatch.reset();
out.println("Parsing results...");
stopwatch.start();
}
@Override
public void afterResultParsing(int resultCount) {
stopwatch.stop();
out.println(resultCount + " results parsed in " + stopwatch.elapsed(TimeUnit.MILLISECONDS) + " ms");
}
}