1 // -*- Mode: Java; indent-tabs-mode: t; tab-width: 4 -*-
2 // ---------------------------------------------------------------------------
4 // Copyright (C) Stephanie Gawroriski <xer@multiphasicapps.net>
5 // ---------------------------------------------------------------------------
6 // SquirrelJME is under the GNU General Public License v3+, or later.
7 // See license.mkd for licensing and copyright information.
8 // ---------------------------------------------------------------------------
10 package cc
.squirreljme
.plugin
.util
;
12 import java
.io
.ByteArrayOutputStream
;
13 import java
.io
.IOException
;
14 import java
.io
.OutputStream
;
15 import org
.gradle
.api
.logging
.LogLevel
;
16 import org
.gradle
.api
.logging
.Logger
;
19 * Outputs whatever text to Gradle's Logger interface
23 public final class GradleLoggerOutputStream
24 extends LinePushOutputStream
26 /** The log level to output as. */
27 private final LogLevel _logLevel
;
29 /** The logger to output to. */
30 private final Logger _logger
;
33 private final int _testId
;
35 /** The test total. */
36 private final int _testTotal
;
39 * Outputs to the given logger.
41 * @param __logger The logger to output to.
42 * @param __logLevel The log level to output under.
43 * @param __testId The test ID, is optional.
44 * @param __testTotal The total number of tests.
45 * @throws NullPointerException On null arguments.
48 public GradleLoggerOutputStream(Logger __logger
, LogLevel __logLevel
,
49 int __testId
, int __testTotal
)
50 throws NullPointerException
52 if (__logger
== null || __logLevel
== null)
53 throw new NullPointerException("NARG");
55 this._logger
= __logger
;
56 this._logLevel
= __logLevel
;
57 this._testId
= __testId
;
58 this._testTotal
= __testTotal
;
66 protected void push(String __string
)
68 int testId
= this._testId
;
69 int testTotal
= this._testTotal
;
71 // Which output string do we want?
73 if (testId
< 0 || testTotal
< 0)
76 message
= String
.format("[%d/%d]: %s", testId
, testTotal
,
79 // Output to the logger before it goes away
80 this._logger
.log(this._logLevel
, message
);