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

org.sevensource.magnolia.thymeleaf.renderer.RequestAttributesPreservingRequestWrapper Maven / Gradle / Ivy

package org.sevensource.magnolia.thymeleaf.renderer;

import java.util.Collections;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletRequestWrapper;

public class RequestAttributesPreservingRequestWrapper extends HttpServletRequestWrapper {

	private final Map shadowAttributes = new HashMap<>();

	public RequestAttributesPreservingRequestWrapper(HttpServletRequest request) {
		super(request);
	}

	@Override
	public void setAttribute(String name, Object o) {
		this.shadowAttributes.put(name, o);
	}

	@Override
	public Object getAttribute(String name) {
		if(shadowAttributes.containsKey(name)) {
			return shadowAttributes.get(name);
		} else {
			return super.getAttribute(name);
		}
	}

	@Override
	public Enumeration getAttributeNames() {
		final Set attributeNames = new HashSet<>();
		attributeNames.addAll(Collections.list( super.getAttributeNames() ));
		attributeNames.addAll(shadowAttributes.keySet());
		return Collections.enumeration(attributeNames);
	}

	@Override
	public void removeAttribute(String name) {
		this.shadowAttributes.remove(name);
	}

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy