|
@@ 165-180 (lines=16) @@
|
| 162 |
|
return self._state |
| 163 |
|
|
| 164 |
|
|
| 165 |
|
class DataManagerCommandFactory(AbstractCommandFactory, ABC): |
| 166 |
|
|
| 167 |
|
subclasses = {} |
| 168 |
|
|
| 169 |
|
@classmethod |
| 170 |
|
def register_as_subclass(cls, factory_type): |
| 171 |
|
def wrapper(subclass): |
| 172 |
|
cls.subclasses[factory_type] = subclass |
| 173 |
|
return subclass |
| 174 |
|
return wrapper |
| 175 |
|
|
| 176 |
|
@classmethod |
| 177 |
|
def create(cls, factory_type, *args, **kwargs): |
| 178 |
|
if factory_type not in cls.subclasses: |
| 179 |
|
raise ValueError('Bad "Factory type" \'{}\''.format(factory_type)) |
| 180 |
|
return cls.subclasses[factory_type](*args, **kwargs) |
| 181 |
|
|
| 182 |
|
|
| 183 |
|
@DataManagerCommandFactory.register_as_subclass('select_variables') |
|
@@ 67-82 (lines=16) @@
|
| 64 |
|
def construct(self, *args, **kwargs) -> Command: |
| 65 |
|
raise NotImplementedError |
| 66 |
|
|
| 67 |
|
class BaseCommandFactory(AbstractCommandFactory, ABC): |
| 68 |
|
|
| 69 |
|
subclasses = {} |
| 70 |
|
|
| 71 |
|
@classmethod |
| 72 |
|
def register_as_subclass(cls, factory_type): |
| 73 |
|
def wrapper(subclass): |
| 74 |
|
cls.subclasses[factory_type] = subclass |
| 75 |
|
return subclass |
| 76 |
|
return wrapper |
| 77 |
|
|
| 78 |
|
@classmethod |
| 79 |
|
def create(cls, factory_type, *args, **kwargs): |
| 80 |
|
if factory_type not in cls.subclasses: |
| 81 |
|
raise ValueError('Bad "Factory type" \'{}\''.format(factory_type)) |
| 82 |
|
return cls.subclasses[factory_type](*args, **kwargs) |
| 83 |
|
|
| 84 |
|
|
| 85 |
|
@BaseCommandFactory.register_as_subclass('generic') |