org.apache.juli.logging.ch.qos.logback.core.joran.sanity.SanityChecker Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of tomcat85-slf4j-logback Show documentation
Show all versions of tomcat85-slf4j-logback Show documentation
Tomcat85 Slf4j Logback Integration
/**
* Logback: the reliable, generic, fast and flexible logging framework.
* Copyright (C) 1999-2022, QOS.ch. All rights reserved.
*
* This program and the accompanying materials are dual-licensed under
* either the terms of the Eclipse Public License v1.0 as published by
* the Eclipse Foundation
*
* or (per the licensee's choosing)
*
* under the terms of the GNU Lesser General Public License version 2.1
* as published by the Free Software Foundation.
*/
package org.apache.juli.logging.ch.qos.logback.core.joran.sanity;
import org.apache.juli.logging.ch.qos.logback.core.model.Model;
import java.util.ArrayList;
import java.util.List;
/**
* Interface for sanity checking Models.
* @since 1.3.2/1.4.2
* @author ceki
*/
public interface SanityChecker {
public void check(Model model);
default void deepFindAllModelsOfType(Class modelClass, List modelList, Model model) {
if (modelClass.isInstance(model)) {
modelList.add(model);
}
for (Model m : model.getSubModels()) {
deepFindAllModelsOfType(modelClass, modelList, m);
}
}
default List> deepFindNestedSubModelsOfType(Class modelClass, List parentList) {
List> nestingPairs = new ArrayList<>();
for (Model parent : parentList) {
List nestedElements = new ArrayList<>();
parent.getSubModels().stream().forEach(m -> deepFindAllModelsOfType(modelClass, nestedElements, m));
nestedElements.forEach(n -> nestingPairs.add(new Pair(parent, n)));
}
return nestingPairs;
}
}