Completed
Push — master ( 0d56a8...9e1177 )
by Jasper
10s
created

FormatFactory   A

Complexity

Total Complexity 8

Size/Duplication

Total Lines 19
Duplicated Lines 0 %
Metric Value
dl 0
loc 19
rs 10
wmc 8

2 Methods

Rating   Name   Duplication   Size   Complexity  
B create() 0 14 7
A __init__() 0 2 1
1
from niprov.dependencies import Dependencies
2
from niprov.formatjson import JsonFormat
3
from niprov.formatxml import XmlFormat
4
from niprov.formatnarrated import NarratedFormat
5
from niprov.formatsimple import SimpleFormat
6
from niprov.formatdict import DictFormat
7
from niprov.formatobject import ObjectFormat
8
9
10
class FormatFactory(object):
11
12
    def __init__(self, dependencies=Dependencies()):
13
        self.dependencies = dependencies
14
15
    def create(self, formatName):
16
        if formatName == 'json':
17
            return JsonFormat(self.dependencies)
18
        if formatName == 'xml':
19
            return XmlFormat(self.dependencies)
20
        if formatName == 'narrated':
21
            return NarratedFormat()
22
        if formatName == 'simple':
23
            return SimpleFormat()
24
        if formatName == 'dict':
25
            return DictFormat()
26
        if formatName == 'object':
27
            return ObjectFormat()
28
        raise ValueError('Unknown format: '+str(formatName))
29