package de.is24.util.monitoring.keyhandler; import de.is24.util.monitoring.InApplicationMonitor; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * On a way to a more restrictive key pattern for values, this class may * help in finding key values, that get corrected by other Key Handler. */ public class DelegatingReportingKeyHandler implements KeyHandler { private static final Logger LOGGER = LoggerFactory.getLogger(DelegatingReportingKeyHandler.class); private final KeyHandler delegate; public DelegatingReportingKeyHandler(KeyHandler delegate) { this.delegate = delegate; } @Override public String handle(String name) { String result = delegate.handle(name); if (!result.equals(name)) { InApplicationMonitor.getInstance().incrementCounter("malformedKey"); LOGGER.info("corrected Key value from {} to {}", name, result); } return result; } }