All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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:
 * 
 * #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()));
	}
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy