Source code for ssg.oval_object_model.oval_definition_references

def _process(list_, to_process_list):
    id_ = to_process_list.pop()
    if id_ not in list_:
        list_.append(id_)
    return id_


def _save(id_, list_, to_process_list):
    if id_ not in list_:
        list_.append(id_)
        to_process_list.append(id_)


def _save_multiple(list_of_ids, list_, to_process_list):
    for id_ in list_of_ids:
        _save(id_, list_, to_process_list)


[docs] class OVALDefinitionReference: def __init__(self, definition_id=None): self.definitions = [] self.to_process_definitions = [] if definition_id is not None: self.definitions.append(definition_id) self.to_process_definitions.append(definition_id) self.tests = [] self.objects = [] self.states = [] self.variables = [] self.to_process_tests = [] self.to_process_objects = [] self.to_process_states = [] self.to_process_variables = []
[docs] def is_done(self): return ( len(self.to_process_definitions) == 0 and len(self.to_process_tests) == 0 and len(self.to_process_objects) == 0 and len(self.to_process_states) == 0 and len(self.to_process_variables) == 0 )
def __iadd__(self, other): self.definitions.extend(other.definitions) self.tests.extend(other.tests) self.objects.extend(other.objects) self.states.extend(other.states) self.variables.extend(other.variables) return self def __repr__(self): return str(self.__dict__)
[docs] def get_to_process_dict_and_id_getter(self, key): MAP_ID_GETTERS = { "definitions": self.process_definition, "tests": self.process_test, "objects": self.process_object, "states": self.process_state, "variables": self.process_variable, } MAP_TO_PROCESS = { "definitions": self.to_process_definitions, "tests": self.to_process_tests, "objects": self.to_process_objects, "states": self.to_process_states, "variables": self.to_process_variables, } return (MAP_TO_PROCESS.get(key), MAP_ID_GETTERS.get(key))
[docs] def process_definition(self): return _process(self.definitions, self.to_process_definitions)
[docs] def save_definition(self, id_): _save(id_, self.definitions, self.to_process_definitions)
[docs] def save_definitions(self, definition_ids): _save_multiple(definition_ids, self.definitions, self.to_process_definitions)
[docs] def process_test(self): return _process(self.tests, self.to_process_tests)
[docs] def save_test(self, id_): _save(id_, self.tests, self.to_process_tests)
[docs] def save_tests(self, test_ids): _save_multiple(test_ids, self.tests, self.to_process_tests)
[docs] def process_object(self): return _process(self.objects, self.to_process_objects)
[docs] def save_object(self, id_): _save(id_, self.objects, self.to_process_objects)
[docs] def save_objects(self, object_ids): _save_multiple(object_ids, self.objects, self.to_process_objects)
[docs] def process_state(self): return _process(self.states, self.to_process_states)
[docs] def save_state(self, id_): _save(id_, self.states, self.to_process_states)
[docs] def save_states(self, state_ids): _save_multiple(state_ids, self.states, self.to_process_states)
[docs] def process_variable(self): return _process(self.variables, self.to_process_variables)
[docs] def save_variable(self, id_): _save(id_, self.variables, self.to_process_variables)
[docs] def save_variables(self, variable_ids): _save_multiple(variable_ids, self.variables, self.to_process_variables)