1   /*
2    * Logback: the reliable, generic, fast and flexible logging framework.
3    * Copyright (C) 1999-2024, QOS.ch. All rights reserved.
4    *
5    * This program and the accompanying materials are dual-licensed under
6    * either the terms of the Eclipse Public License v1.0 as published by
7    * the Eclipse Foundation
8    *
9    *   or (per the licensee's choosing)
10   *
11   * under the terms of the GNU Lesser General Public License version 2.1
12   * as published by the Free Software Foundation.
13   */
14  
15  package ch.qos.logback.core.spi;
16  
17  import ch.qos.logback.core.joran.GenericXMLConfigurator;
18  
19  import java.util.function.Supplier;
20  
21  /**
22   * An interface extending both {@link PropertyContainer} and {@link ContextAware}
23   *
24   * @since 1.5.1
25   */
26  public interface ContextAwarePropertyContainer extends PropertyContainer, ContextAware {
27  
28  
29      /**
30       * This method is used tp perform variable substitution.
31       *
32       * @param input
33       * @return a new string after variable substitution, if any.
34       */
35      String subst(String input);
36  
37  
38      /**
39       * Returns a supplier of {@link GenericXMLConfigurator} instance. The returned value may be null.
40       *
41       * <p>This method could/should have been part of a new interface. It is added here for reasons
42       * of commodity and not coherence.</p>
43       *
44       * @return a supplier of {@link GenericXMLConfigurator} instance, may be null
45       * @since 1.5.11
46       */
47      default public Supplier<? extends GenericXMLConfigurator> getConfiguratorSupplier() {
48          return null;
49      }
50  }