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

org.xmlactions.pager.actions.LogAction Maven / Gradle / Ivy


package org.xmlactions.pager.actions;


import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;

import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.xmlactions.action.actions.BaseAction;
import org.xmlactions.action.config.IExecContext;
import org.xmlactions.common.theme.Theme;
import org.xmlactions.web.HttpParam;

import com.google.gson.GsonBuilder;

public class LogAction extends BaseAction
{

	private static Logger log = LoggerFactory.getLogger(LogAction.class);
	private String key;

	public String execute(IExecContext execContext)
	{
		String output;
		if (StringUtils.isNotBlank(getContent())) {
			output = execContext.replace(getContent());
		} else if (StringUtils.isBlank(key)) {
			output = dump(execContext);
		} else {
			output = dump(execContext, key);
		}
		log.debug(output);
		return output;
	}
	
	private String dump(IExecContext execContext) {
		return dumpMap(execContext, "execContext");
	}

	private String dump(IExecContext execContext, String key) {
		Object obj = execContext.get(key);
	    //convert Map  to String
	    return new GsonBuilder().setPrettyPrinting().create().toJson(obj);
//
//		if (obj == null) {
//			obj = execContext.getNamedMap(key);
//		}
//		if (obj != null) {
//			if (obj instanceof Map) {
//				Map map = (Map) obj;
//				return dumpMap(map, key);
//			} else if (obj instanceof List) {
//				List list = (List)obj;
//				return dumpList(list, key);
//			} else if (obj instanceof Theme) {
//				Theme theme = (Theme)obj;
//				return dumpTheme(theme, key);
//			}
//		}
//		return key + ":" + obj;
	}
	
	private String dumpMap(Map map, String mapName) {
		StringBuilder sb = new StringBuilder();
		if (map != null) {
			Set> entrySet = map.entrySet();
			Iterator> iterator = entrySet.iterator();
			while (iterator.hasNext()) {
				Entry entry = iterator.next();
				sb.append(mapName);
				sb.append(":");
				sb.append(entry.getKey());
				sb.append(" = ");
				sb.append(entry.getValue());
				sb.append("\n");
			}
		}
		return sb.toString();
	}
	
	private String dumpList(List list, String listName) {
		
		StringBuilder sb = new StringBuilder();
		if (list != null) {
			for(Object obj : list) {
				sb.append(listName);
				sb.append(" = ");
				sb.append(obj);
			}
		}
		return sb.toString();
	}

	private String dumpTheme(Theme theme, String keyName) {
		StringBuilder sb = new StringBuilder();
		if (theme != null) {
			sb.append(keyName);
			sb.append(":");
			if (theme.getName() != null) {
				sb.append(theme.getName());
			}
			sb.append("\n");
			sb.append(dumpMap(theme.getMap(), keyName));
	
			Set> entrySet = theme.getThemes().entrySet();
			Iterator> iterator = entrySet.iterator();
			while (iterator.hasNext()) {
				Entry entry = iterator.next();
				Theme childTheme = entry.getValue();
				sb.append(dumpTheme(childTheme, entry.getKey()));
				sb.append("\n");
			}
		}
		return sb.toString();
		
	}

	/**
	 * @return the key
	 */
	public String getKey() {
		return key;
	}

	/**
	 * @param key the key to set
	 */
	public void setKey(String key) {
		this.key = key;
	}

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy