package io.undertow.attribute;

import io.undertow.server.HttpServerExchange;

Author:Stuart Douglas
/** * @author Stuart Douglas */
public class SubstituteEmptyWrapper implements ExchangeAttributeWrapper { private final String substitute; public SubstituteEmptyWrapper(String substitute) { this.substitute = substitute; } @Override public ExchangeAttribute wrap(final ExchangeAttribute attribute) { return new SubstituteEmptyAttribute(attribute, substitute); } public static class SubstituteEmptyAttribute implements ExchangeAttribute { private final ExchangeAttribute attribute; private final String substitute; public SubstituteEmptyAttribute(ExchangeAttribute attribute, String substitute) { this.attribute = attribute; this.substitute = substitute; } @Override public String readAttribute(HttpServerExchange exchange) { String val = attribute.readAttribute(exchange); if(val == null || val.isEmpty()) { return substitute; } return val; } @Override public void writeAttribute(HttpServerExchange exchange, String newValue) throws ReadOnlyAttributeException { attribute.writeAttribute(exchange, newValue); } } }