diff options
author | Richard Maw <richard.maw@codethink.co.uk> | 2013-11-26 12:37:33 +0000 |
---|---|---|
committer | Richard Maw <richard.maw@codethink.co.uk> | 2013-11-29 16:11:32 +0000 |
commit | 5ecc3651d4cab13d244e394ab63e45d79294f62d (patch) | |
tree | ffedff8031363678b10e2c3de47a6cf702c4d864 /morphlib/morphloader.py | |
parent | 03e724f1fb690e9ef95b082e4f1ad96799ec18c1 (diff) | |
download | morph-5ecc3651d4cab13d244e394ab63e45d79294f62d.tar.gz |
morphloader: use getattr for validate, set defaults
It saves some boilerplate.
Diffstat (limited to 'morphlib/morphloader.py')
-rw-r--r-- | morphlib/morphloader.py | 21 |
1 files changed, 5 insertions, 16 deletions
diff --git a/morphlib/morphloader.py b/morphlib/morphloader.py index fdc3b62f..e7c1d9ff 100644 --- a/morphlib/morphloader.py +++ b/morphlib/morphloader.py @@ -288,14 +288,10 @@ class MorphologyLoader(object): self._deny_obsolete_fields(obsolete, morph) self._deny_unknown_fields(required + allowed, morph) - if kind == 'system': - self._validate_system(morph) - elif kind == 'stratum': - self._validate_stratum(morph) - elif kind == 'chunk': - self._validate_chunk(morph) - else: - assert kind == 'cluster' + getattr(self, '_validate_%s' % kind)(morph) + + def _validate_cluster(self, morph): + pass def _validate_system(self, morph): # A system must contain at least one stratum @@ -394,14 +390,7 @@ class MorphologyLoader(object): if key not in morphology: morphology[key] = defaults[key] - if kind == 'cluster': - self._set_cluster_defaults(morphology) - elif kind == 'system': - self._set_system_defaults(morphology) - elif kind == 'stratum': - self._set_stratum_defaults(morphology) - elif kind == 'chunk': - self._set_chunk_defaults(morphology) + getattr(self, '_set_%s_defaults' % kind)(morphology) def unset_defaults(self, morphology): '''If a field is equal to its default, delete it. |