OSDN Git Service

revise amulet search to consider of seed1 value,
[amulettoolsmh4/main.git] / model / amuletidskillidholder.py
1 # -*- coding: utf-8 -*-
2
3 # お守りIdとスキルIdペアの保持用クラス
4 # 2013/12/16 written by kei9 
5
6 import db_supports
7
8 class AmuletIdSkillIdHolder(object):
9     u""" お守りのスキルを保持するクラス """
10     def __init__(self, amulet_id_list, skill_id_list):
11         u""" skill_id_list: list of skill id
12             if skill is unknown, element must be None
13         """
14         self.skill_id_list = list(skill_id_list)
15         self.amulet_id_list = list(amulet_id_list)
16
17     def is_empty(self):
18         u""" すべての要素がNoneのときTrueを返す """
19         if all([x is None for x in self.skill_id_list]) and all([x is None for x in self.amulet_id_list]):
20             return True
21         else:
22             return False
23
24     def get_where_and_sql(self, remove_where=False):
25         u""" SQLのWhere文に変換する(AND結合) """
26         if self.is_empty() is False:
27             valid_eqls = []
28             for skill_col, amulet_col, skill_id, amu_id in zip(
29                     db_supports.SEED1_TENUN_COL_SKILL1_LIST,
30                     db_supports.SEED1_TENUN_COL_AMULET_LIST,
31                     self.skill_id_list, self.amulet_id_list):
32                 if skill_id is not None and amu_id is not None:
33                     valid_eqls.append(u"{col}={skill_id}".format(col=skill_col, skill_id=skill_id))
34                     valid_eqls.append(u"{col}={amu_id}".format(col=amulet_col, amu_id=amu_id))
35             if remove_where:
36                 return u" and ".join(valid_eqls)
37             else:
38                 return u" where " + u" and ".join(valid_eqls)
39         else:
40             return ""
41