47 lines
1.7 KiB
Python
47 lines
1.7 KiB
Python
from pyogp.lib.base.data import msg_tmpl
|
|
from pyogp.lib.base.message.message_types import MsgFrequency
|
|
|
|
class TemplateDictionary(object):
|
|
def __init__(self, template_list):
|
|
if template_list == None:
|
|
raise Exception('Template list null')
|
|
#maps name to template
|
|
self.message_templates = {}
|
|
#maps (freq,num) to template
|
|
self.message_dict = {}
|
|
|
|
self.buildDictionaries(template_list)
|
|
|
|
def buildDictionaries(self, template_list):
|
|
for template in template_list:
|
|
self.message_templates[template.name] = template
|
|
|
|
#do a mapping of type to a string for easier reference
|
|
frequency_str = ''
|
|
if template.frequency == MsgFrequency.FIXED_FREQUENCY_MESSAGE:
|
|
frequency_str = "Fixed"
|
|
elif template.frequency == MsgFrequency.LOW_FREQUENCY_MESSAGE:
|
|
frequency_str = "Low"
|
|
elif template.frequency == MsgFrequency.MEDIUM_FREQUENCY_MESSAGE:
|
|
frequency_str = "Medium"
|
|
elif template.frequency == MsgFrequency.HIGH_FREQUENCY_MESSAGE:
|
|
frequency_str = "High"
|
|
|
|
self.message_dict[(frequency_str, \
|
|
template.msg_num)] = template
|
|
|
|
def get_template(self, template_name):
|
|
if template_name in self.message_templates:
|
|
return self.message_templates[template_name]
|
|
|
|
return None
|
|
|
|
def get_template_by_pair(self, frequency, num):
|
|
if (frequency, num) in self.message_dict:
|
|
return self.message_dict[(frequency, num)]
|
|
|
|
return None
|
|
|
|
def __getitem__(self, i):
|
|
return self.get_template(i)
|