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

io.tracee.contextlogger.builder.ConfigBuilderImpl Maven / Gradle / Ivy

The newest version!
package io.tracee.contextlogger.builder;

import io.tracee.contextlogger.profile.Profile;

import java.util.HashMap;
import java.util.Map;


public class ConfigBuilderImpl implements ConfigBuilder {

	private ContextLoggerBuilderImpl owningBuilder;

	private Profile profile = null;

	public Profile getProfile() {
		return profile;
	}

	private Map manualContextOverrides = new HashMap();


	public ConfigBuilderImpl(ContextLoggerBuilderImpl owningBuilder) {
		this.owningBuilder = owningBuilder;
	}

	@Override
	public final ConfigBuilderImpl enforceProfile(Profile profile) {
		this.profile = profile;
		return this;
	}

	@Override
	public ConfigBuilder enable(String... contexts) {
		fillManualContextOverrideMap(contexts, true);
		return this;
	}

	@Override
	public ConfigBuilder disable(String... contexts) {
		fillManualContextOverrideMap(contexts, false);
		return this;
	}

	@Override
	public ContextLoggerBuilder apply() {
		return owningBuilder;
	}

	Map getManualContextOverrides() {
		return manualContextOverrides;
	}



	/**
	 * Adds passed contexts value pairs to manualContextOverrides.
	 *
	 * @param contexts The property name of the context data.
	 * @param value    the value which should be set.
	 */
	private void fillManualContextOverrideMap(final String[] contexts, final boolean value) {
		if (contexts != null) {

			for (String context : contexts) {

				if (!context.isEmpty()) {
					this.manualContextOverrides.put(context, value);
				}

			}

		}
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy