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

io.tracee.contextlogger.builder.gson.TraceeGsonContextLogBuilder Maven / Gradle / Ivy

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

import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import io.tracee.contextlogger.builder.AbstractContextLogBuilder;
import io.tracee.contextlogger.data.subdata.tracee.PassedDataContextProvider;
import io.tracee.contextlogger.profile.ProfileSettings;

/**
 * Context Logger implementation for gson.
 * Created by Tobias Gindler, holisticon AG on 20.03.14.
 */
public class TraceeGsonContextLogBuilder extends AbstractContextLogBuilder {


	private Gson gson = null;

	/**
	 * Gets or creates the gson instance generation of output.
	 */
	private Gson getOrCreateGson() {

		if (gson == null) {

			final GsonBuilder gsonBuilder = new GsonBuilder();

			final TraceeGenericGsonSerializer gsonSerializer = new TraceeGenericGsonSerializer(new ProfileSettings(this.getProfile(),
					this.getManualContextOverrides()));

			for (Class clazz : this.getWrapperClasses()) {
				gsonBuilder.registerTypeAdapter(clazz, gsonSerializer);
			}

			gson = gsonBuilder.create();
		}

		return gson;

	}


	@Override
	public final String log(Object... instancesToLog) {
		return getOrCreateGson().toJson(instancesToLog);
	}

	@Override
	public final String logPassedContext(PassedDataContextProvider passedContextData) {
		return getOrCreateGson().toJson(passedContextData);
	}


}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy