Assumes that all feature values that start with '@' are
    names of rules, used in 'context-module'. Such rules can be
    either local to the module or global. Qualified local rules
    with the name of the module.

def translate_indirect(properties, context_module):
    """Assumes that all feature values that start with '@' are
    names of rules, used in 'context-module'. Such rules can be
    either local to the module or global. Qualified local rules
    with the name of the module."""
    assert is_iterable_typed(properties, Property)
    assert isinstance(context_module, basestring)
    result = []
    for p in properties:
        if p.value[0] == '@':
            q = qualify_jam_action(p.value[1:], context_module)
            get_manager().engine().register_bjam_action(q)
            result.append(Property(p.feature, '@' + q, p.condition))
        else:
            result.append(p)

    return result