class JAXBConfigImpl extends AbstractBaseConfig {

    protected void logPropertyChange(String msg, String key, String rawValue, String oldValue, String newValue) {

        // If INFO level logging is not enabled, we are done
        if (!LOG.isInfoEnabled()) {
            return;
        }

        // There was no previous value, we are done
        if (oldValue == null) {
            return;
        }

        // There was a previous value, but it's the same as the new value, we are done
        if (StringUtils.equals(oldValue, newValue)) {
            return;
        }

        // Create some log friendly strings
        String displayOld = flatten(ConfigLogger.getDisplaySafeValue(key, oldValue));
        String displayNew = flatten(ConfigLogger.getDisplaySafeValue(key, newValue));
        String displayRaw = flatten(rawValue);

        // Log what happened to this property value
        if (StringUtils.contains(rawValue, "$")) {
            LOG.info(msg + key + "(" + displayRaw + ")=[" + displayOld + "]->[" + displayNew + "]");
        } else {
            LOG.info(msg + key + "=[" + displayOld + "]->[" + displayNew + "]");
        }
    }

    public  JAXBConfigImpl();
    public  JAXBConfigImpl(Config config);
    public  JAXBConfigImpl(String fileLoc, Config config);
    public  JAXBConfigImpl(List<String> fileLocs, Config config);
    public  JAXBConfigImpl(String fileLoc);
    public  JAXBConfigImpl(List<String> fileLocs);
    public  JAXBConfigImpl(Properties properties);
    public  JAXBConfigImpl(String fileLoc, Properties properties);
    public  JAXBConfigImpl(List<String> fileLocs, Properties properties);

}