001/* 002 * Logback: the reliable, generic, fast and flexible logging framework. 003 * Copyright (C) 1999-2024, QOS.ch. All rights reserved. 004 * 005 * This program and the accompanying materials are dual-licensed under 006 * either the terms of the Eclipse Public License v1.0 as published by 007 * the Eclipse Foundation 008 * 009 * or (per the licensee's choosing) 010 * 011 * under the terms of the GNU Lesser General Public License version 2.1 012 * as published by the Free Software Foundation. 013 */ 014 015package ch.qos.logback.core.spi; 016 017import ch.qos.logback.core.joran.GenericXMLConfigurator; 018 019import java.util.function.Supplier; 020 021/** 022 * An interface extending both {@link PropertyContainer} and {@link ContextAware} 023 * 024 * @since 1.5.1 025 */ 026public interface ContextAwarePropertyContainer extends PropertyContainer, ContextAware { 027 028 029 /** 030 * This method is used tp perform variable substitution. 031 * 032 * @param input 033 * @return a new string after variable substitution, if any. 034 */ 035 String subst(String input); 036 037 038 /** 039 * Returns a supplier of {@link GenericXMLConfigurator} instance. The returned value may be null. 040 * 041 * <p>This method could/should have been part of a new interface. It is added here for reasons 042 * of commodity and not coherence.</p> 043 * 044 * @return a supplier of {@link GenericXMLConfigurator} instance, may be null 045 * @since 1.5.11 046 */ 047 default public Supplier<? extends GenericXMLConfigurator> getConfiguratorSupplier() { 048 return null; 049 } 050}