io.earcam.utilitarian.site.search.offline.Component Maven / Gradle / Ivy
/*-
* #%L
* io.earcam.utilitarian.site.search.offline
* %%
* Copyright (C) 2017 earcam
* %%
* SPDX-License-Identifier: (BSD-3-Clause OR EPL-1.0 OR Apache-2.0 OR MIT)
*
* You must choose to accept, in full - any individual or combination of
* the following licenses:
*
* - BSD-3-Clause
* - EPL-1.0
* - Apache-2.0
* - MIT
*
* #L%
*/
package io.earcam.utilitarian.site.search.offline;
import java.nio.charset.Charset;
import java.util.Map;
public interface Component {
public default String id()
{
return this.getClass().getSimpleName();
}
public default void configure(Map configuration)
{}
public static String mandatory(Map configuration, String key)
{
if(configuration.containsKey(key)) {
return configuration.get(key);
}
throw new NullPointerException("Missing mandatory configuration: " + key);
}
public static boolean getOrDefault(Map configuration, String key, boolean defaultValue)
{
return Boolean.parseBoolean(configuration.getOrDefault(key, Boolean.toString(defaultValue)));
}
public static Charset getOrDefault(Map configuration, String key, Charset defaultValue)
{
return Charset.forName(configuration.getOrDefault(key, defaultValue.toString()));
}
}