Files
Hippolyzer/pyogp/lib/base/message/message_template_dict.py
2008-07-28 20:16:44 +00:00

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)