54 lines
1.8 KiB
Python
54 lines
1.8 KiB
Python
from typing import Set, List, Any
|
|
|
|
from core.registration.types import types
|
|
from core.registration.record import RecordHeader
|
|
|
|
class Registry:
|
|
__registry_store = {}
|
|
|
|
def __init__(self):
|
|
self.__registry_store = self.__RegistryStore()
|
|
|
|
def register(self, type, referral_name, parameters=None, policy=""):
|
|
if parameters is None:
|
|
parameters = {}
|
|
|
|
if types.exist(type):
|
|
self.__registry_store.add(type, referral_name)
|
|
print("["+type+"] - " + referral_name + " registered.")
|
|
return True
|
|
else:
|
|
print("["+type+"] - " + referral_name + " couldn't registered. Missing the type.")
|
|
return False
|
|
|
|
def unregister(self, type, referral_name):
|
|
self.__registry_store.remove(type,referral_name)
|
|
|
|
def exist(self, type, referral_name):
|
|
return self.__registry_store.exist(type, referral_name)
|
|
class __RegistryStore:
|
|
__store = {}
|
|
|
|
def __init__(self):
|
|
print("Registry Store")
|
|
|
|
def add(self, type, referral_name):
|
|
if type not in self.__store:
|
|
self.__store[type] = {}
|
|
if referral_name not in self.__store[type]:
|
|
self.__store[type][referral_name] = {}
|
|
self.__store[type][referral_name]["policy"] = ""
|
|
self.__store[type][referral_name]["parameters"] = ""
|
|
else:
|
|
print("This '"+referral_name+"' referral in this '"+type+"' type is already exist!")
|
|
|
|
def exist(self, type, referral_name):
|
|
if type not in self.__store or referral_name not in self.__store[type]:
|
|
return False
|
|
return True
|
|
|
|
def remove(self, type, referral_name):
|
|
self.__store[type].pop(referral_name)
|
|
if len(self.__store[type]) == 0:
|
|
self.__store.pop(type)
|