class SettingsUtils {

    private SettingsUtils() {
        // don't allow construction.
    }

    /**
     * @param dominant
     * @param recessive
     * @param recessiveSourceLevel
     */
    public static void merge(Settings dominant, Settings recessive, String recessiveSourceLevel) {<FILL_FUNCTION_BODY>}

    /**
     * @param modelProfile
     * @return a profile
     */
    public static Profile convertToSettingsProfile(org.apache.maven.model.Profile modelProfile) {
        return new Profile(SettingsUtilsV4.convertToSettingsProfile(modelProfile.getDelegate()));
    }

    /**
     * @param settingsProfile
     * @return a profile
     */
    public static org.apache.maven.model.Profile convertFromSettingsProfile(Profile settingsProfile) {
        return new org.apache.maven.model.Profile(
                SettingsUtilsV4.convertFromSettingsProfile(settingsProfile.getDelegate()));
    }

    /**
     * @param settings could be null
     * @return a new instance of settings or null if settings was null.
     */
    public static Settings copySettings(Settings settings) {
        if (settings == null) {
            return null;
        }

        return new Settings(settings.getDelegate());
    }
}

        if (dominant != null && recessive != null) {
            dominant.delegate = SettingsUtilsV4.merge(dominant.getDelegate(), recessive.getDelegate());
        }
    
<no_super_class>