public static List<String> findVariablesForEncodedValuesString(CustomModel model, NameValidator nameValidator, ClassHelper classHelper) {
        Set<String> variables = new LinkedHashSet<>();
        // avoid parsing exception for backward_xy or in_xy ...
        NameValidator nameValidatorIntern = s -> {
            // some literals are no variables and would throw an exception (encoded value not found)
            if (Character.isUpperCase(s.charAt(0)) || s.startsWith(BACKWARD_PREFIX) || s.startsWith(IN_AREA_PREFIX))
                return true;
            if (nameValidator.isValid(s)) {
                variables.add(s);
                return true;
            }
            return false;
        };
        findVariablesForEncodedValuesString(model.getPriority(), nameValidatorIntern, classHelper);
        findVariablesForEncodedValuesString(model.getSpeed(), nameValidatorIntern, classHelper);
        return new ArrayList<>(variables);
    }
@Test
    public void findVariablesForEncodedValueString() {
        CustomModel customModel = new CustomModel();
        customModel.addToPriority(If("backward_car_access != car_access", MULTIPLY, "0.5"));
        List<String> variables = findVariablesForEncodedValuesString(customModel, s -> new DefaultImportRegistry().createImportUnit(s) != null, s -> "");
        assertEquals(List.of("car_access"), variables);

        customModel = new CustomModel();
        customModel.addToPriority(If("!foot_access && (hike_rating < 4 || road_access == PRIVATE)", MULTIPLY, "0"));
        //, {"if": "true", "multiply_by": foot_priority}, {"if": "foot_network == INTERNATIONAL || foot_network == NATIONAL", "multiply_by": 1.7}, {"else_if": "foot_network == REGIONAL || foot_network == LOCAL", "multiply_by": 1.5}]|areas=[]|turnCostsConfig=transportationMode=null, restrictions=false, uTurnCosts=-1
        variables = findVariablesForEncodedValuesString(customModel, s -> new DefaultImportRegistry().createImportUnit(s) != null, s -> "");
        assertEquals(List.of("foot_access", "hike_rating", "road_access"), variables);
    }