def __init__(self, state_id, json_ps):
    super(ProgramState, self).__init__()
    logging.debug(('Adding ProgramState ' + str(state_id)))
    if (json_ps is None):
        json_ps = {'store': None, 'environment': None, 'constraints': None, 'dynamic_types': None, 'constructing_objects': None, 'checker_messages': None}
    self.state_id = state_id
    self.store = (Store(json_ps['store']) if (json_ps['store'] is not None) else None)
    self.environment = (GenericEnvironment(json_ps['environment']['items']) if (json_ps['environment'] is not None) else None)
    self.constraints = (GenericMap([(c['symbol'], c['range']) for c in json_ps['constraints']]) if (json_ps['constraints'] is not None) else None)
    self.dynamic_types = (GenericMap([(t['region'], ('%s%s' % (t['dyn_type'], (' (or a sub-class)' if t['sub_classable'] else '')))) for t in json_ps['dynamic_types']]) if (json_ps['dynamic_types'] is not None) else None)
    self.constructing_objects = (GenericEnvironment(json_ps['constructing_objects']) if (json_ps['constructing_objects'] is not None) else None)
    self.checker_messages = (CheckerMessages(json_ps['checker_messages']) if (json_ps['checker_messages'] is not None) else None)
def __init__(self, state_id, json_ps):
    super(ProgramState, self).__init__()
    logging.debug(('Adding ProgramState ' + str(state_id)))
    if (json_ps is None):
        json_ps = {'store': None, 'environment': None, 'constraints': None, 'dynamic_types': None, 'constructing_objects': None, 'checker_messages': None}
    self.state_id = state_id
    self.store = (Store(json_ps['store']) if (json_ps['store'] is not None) else None)
    self.environment = (GenericEnvironment(json_ps['environment']['items']) if (json_ps['environment'] is not None) else None)
    self.constraints = (GenericMap([(c['symbol'], c['range']) for c in json_ps['constraints']]) if (json_ps['constraints'] is not None) else None)
    self.dynamic_types = (GenericMap([(t['region'], ('%s%s' % (t['dyn_type'], (' (or a sub-class)' if t['sub_classable'] else )))) for t in json_ps['dynamic_types']]) if (json_ps['dynamic_types'] is not None) else None)
    self.constructing_objects = (GenericEnvironment(json_ps['constructing_objects']) if (json_ps['constructing_objects'] is not None) else None)
    self.checker_messages = (CheckerMessages(json_ps['checker_messages']) if (json_ps['checker_messages'] is not None) else None)