1 package com.atlassian.johnson;
2
3 import java.util.Map;
4
5 /**
6 * When implementing Johnson interfaces, this secondary interface can also be implemented to indicate the object needs
7 * additional initialisation.
8 * <p/>
9 * This interface can be applied to implementations of:
10 * <ul>
11 * <li>{@link com.atlassian.johnson.setup.ContainerFactory ContainerFactory}</li>
12 * <li>{@link com.atlassian.johnson.event.EventCheck EventCheck} (and its derived interfaces)</li>
13 * <li>{@link com.atlassian.johnson.setup.SetupConfig SetupConfig}</li>
14 * </ul>
15 * This interface is applied by the {@link com.atlassian.johnson.config.JohnsonConfig JohnsonConfig} implementation
16 * which is being used. For exact details on its semantics, review the documentation for that class as well.
17 */
18 public interface Initable
19 {
20 /**
21 * Initialise the object, optionally drawing configuration from the provided {@code Map}. The provided map may be
22 * empty, if no parameters were configured, but it will never be {@code null}.
23 *
24 * @param params a map of additional parameters loaded from the configuration file
25 */
26 public void init(Map<String, String> params);
27 }