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}