io.undertow.attribute.SubstituteEmptyWrapper Maven / Gradle / Ivy
package io.undertow.attribute;
import io.undertow.server.HttpServerExchange;
/**
* @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);
}
}
}