
ru.noties.debug.DebugOutputContainer Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of debug Show documentation
Show all versions of debug Show documentation
Library for easy Android logging
The newest version!
package ru.noties.debug;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
@SuppressWarnings("WeakerAccess")
public class DebugOutputContainer implements DebugOutput {
@NonNull
public static DebugOutputContainer create(DebugOutput... outputs) {
return new DebugOutputContainer(Arrays.asList(outputs));
}
@NonNull
public static DebugOutputContainer create(@NonNull Collection extends DebugOutput> outputs) {
return new DebugOutputContainer(outputs);
}
private final boolean isDebug;
private final List outputs;
@Deprecated
public DebugOutputContainer(@NonNull DebugOutput[] outputs) {
this(Arrays.asList(outputs));
}
DebugOutputContainer(@NonNull Collection extends DebugOutput> outputs) {
final List list = new ArrayList<>(outputs.size());
for (DebugOutput output : outputs) {
if (output != null && output.isDebug()) {
list.add(output);
}
}
this.isDebug = list.size() > 0;
this.outputs = isDebug
? Collections.unmodifiableList(list)
: Collections.emptyList();
}
@Override
public void log(
@NonNull Level level,
@Nullable Throwable throwable,
@NonNull String tag,
@Nullable String message) {
for (DebugOutput output : outputs) {
output.log(level, throwable, tag, message);
}
}
@Override
public boolean isDebug() {
return isDebug;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy