OSDN Git Service

split seed1 search -> seed1 tab & skill1 tab
[amulettoolsmh4/main.git] / model / amulettable.py
index df99360..a1a3634 100644 (file)
@@ -8,6 +8,8 @@ IDとお守り名の組み合わせテーブルの作成・アクセスをする
 import sqlite3
 import csv
 
+import singleton
+
 # for amulet table
 NAME = u"amulet_table"
 COL_AMULET_NAME = u"amulet_name"
@@ -51,12 +53,13 @@ class AmuletTableGenerator(object):
 
 class AmuletTableAccessor(object):
     u""" スキルIDとスキル名の組み合わせテーブルへのアクセス用クラス """
+    __metaclass__ = singleton.Singleton
     def __init__(self, db_cursor):
         u""" db_cursor: cursor of sqlite3 database """
         self._cursor = db_cursor
-        self._id2name_dict, self._name2id_dict = self.get_dict()
+        self._id2name_dict, self._name2id_dict = self._get_dict()
 
-    def get_dict(self):
+    def _get_dict(self):
         u""" スキルIDからスキル名への変換辞書を得る。
         return (id2name_dict, name2id_dict)"""
         self._cursor.execute(SELECT_ALL_SQL)
@@ -68,6 +71,14 @@ class AmuletTableAccessor(object):
 
         return (id2name_dict, name2id_dict)
 
+    def get_dict(self, copied=False):
+        u""" スキルIDからスキル名への変換辞書を得る。
+        return (id2name_dict, name2id_dict)"""
+        if copied is True:
+            return (self._id2name_dict.copy(), self._name2id_dict.copy())
+        else:
+            return (self._id2name_dict, self._name2id_dict)
+
     def get_id_sorted_names(self, is_desc=False):
         u""" Id順でソートされたお守り名のタプルを返す
         is_desc=Trueで降順にする。"""