Passed
Push — refactor ( 0ea722...1c6441 )
by Andreas
02:12 queued 36s
created
src/HolidayIteratorFactory.php 1 patch
Indentation   +104 added lines, -104 removed lines patch added patch discarded remove patch
@@ -51,108 +51,108 @@
 block discarded – undo
51 51
 
52 52
 class HolidayIteratorFactory
53 53
 {
54
-	/** @var ItemFromDomElementCreator[] */
55
-	private $factories;
56
-
57
-	/** @var DecorateFromDomElement[] */
58
-	private $decorators;
59
-
60
-	public function __construct()
61
-	{
62
-		$this->factories = [
63
-			new EasterFactory(),
64
-			new EasterOrthodoxFactory(),
65
-			new DateFactory(),
66
-			new DateFollowupFactory(),
67
-			new RelativeFactory(),
68
-		];
69
-
70
-		$this->decorators = [
71
-			new ObservanceDecoratorFactory(),
72
-		];
73
-	}
74
-
75
-	/**
76
-	 * Create a HolidayIterator from an XML-File
77
-	 *
78
-	 * The provided XML-File has to validate against the holiday.xsd-file you
79
-	 * can find in this projects "share" folder.
80
-	 *
81
-	 * @param string $file
82
-	 *
83
-	 * @return HolidayIterator
84
-	 */
85
-	public function createIteratorFromXmlFile(string $file): HolidayIterator
86
-	{
87
-		$iterator = new HolidayIterator();
88
-
89
-		$dom = new DOMDocument('1.0', 'UTF-8');
90
-		$dom->load($file);
91
-		$dom->xinclude();
92
-
93
-		if (!@$dom->schemaValidate(__DIR__ . '/../share/holidays.xsd')) {
94
-			throw new Exception('XML-File does not validate agains schema');
95
-		}
96
-		foreach ($dom->documentElement->childNodes as $child) {
97
-			if (!$child instanceof DOMElement) {
98
-				continue;
99
-			}
100
-			if ($child->nodeName === 'resources') {
101
-				continue;
102
-			}
103
-
104
-			try {
105
-				$element = $this->getElement($child);
106
-				$element = $this->decorateElement($element, $child);
107
-				$iterator->append($element);
108
-			} catch (Throwable $e) {
109
-				// Do nothing on purpose
110
-			}
111
-		}
112
-
113
-		return $iterator;
114
-	}
115
-
116
-	/**
117
-	 * Create a HolidayIterator from an ISO 3166-code.
118
-	 *
119
-	 * @param string $isoCode
120
-	 *
121
-	 * @return HolidayIterator
122
-	 */
123
-	public function createIteratorFromISO3166(string $isoCode): HolidayIterator
124
-	{
125
-		$file = __DIR__ . '/../share/%s.xml';
126
-		$file1 = sprintf($file, $isoCode);
127
-
128
-		if (!is_readable($file1)) {
129
-			throw new UnexpectedValueException(sprintf(
130
-				'There is no holiday-file for %s',
131
-				$isoCode
132
-			));
133
-		}
134
-
135
-		return $this->createIteratorFromXmlFile($file1);
136
-	}
137
-
138
-	private function getElement(DOMElement $child): HolidayIteratorItemInterface
139
-	{
140
-		foreach ($this->factories as $factory) {
141
-			$element = $factory->itemFromDomElement($child);
142
-			if ($element instanceof HolidayIteratorItemInterface) {
143
-				return $element;
144
-			}
145
-		}
146
-
147
-		throw new RuntimeException('Unknown element encountered');
148
-	}
149
-
150
-	private function decorateElement(HolidayIteratorItemInterface $element, DOMElement $child): HolidayIteratorItemInterface
151
-	{
152
-		foreach ($this->decorators as $decorator) {
153
-			$element = $decorator->decorate($element, $child);
154
-		}
155
-
156
-		return $element;
157
-	}
54
+    /** @var ItemFromDomElementCreator[] */
55
+    private $factories;
56
+
57
+    /** @var DecorateFromDomElement[] */
58
+    private $decorators;
59
+
60
+    public function __construct()
61
+    {
62
+        $this->factories = [
63
+            new EasterFactory(),
64
+            new EasterOrthodoxFactory(),
65
+            new DateFactory(),
66
+            new DateFollowupFactory(),
67
+            new RelativeFactory(),
68
+        ];
69
+
70
+        $this->decorators = [
71
+            new ObservanceDecoratorFactory(),
72
+        ];
73
+    }
74
+
75
+    /**
76
+     * Create a HolidayIterator from an XML-File
77
+     *
78
+     * The provided XML-File has to validate against the holiday.xsd-file you
79
+     * can find in this projects "share" folder.
80
+     *
81
+     * @param string $file
82
+     *
83
+     * @return HolidayIterator
84
+     */
85
+    public function createIteratorFromXmlFile(string $file): HolidayIterator
86
+    {
87
+        $iterator = new HolidayIterator();
88
+
89
+        $dom = new DOMDocument('1.0', 'UTF-8');
90
+        $dom->load($file);
91
+        $dom->xinclude();
92
+
93
+        if (!@$dom->schemaValidate(__DIR__ . '/../share/holidays.xsd')) {
94
+            throw new Exception('XML-File does not validate agains schema');
95
+        }
96
+        foreach ($dom->documentElement->childNodes as $child) {
97
+            if (!$child instanceof DOMElement) {
98
+                continue;
99
+            }
100
+            if ($child->nodeName === 'resources') {
101
+                continue;
102
+            }
103
+
104
+            try {
105
+                $element = $this->getElement($child);
106
+                $element = $this->decorateElement($element, $child);
107
+                $iterator->append($element);
108
+            } catch (Throwable $e) {
109
+                // Do nothing on purpose
110
+            }
111
+        }
112
+
113
+        return $iterator;
114
+    }
115
+
116
+    /**
117
+     * Create a HolidayIterator from an ISO 3166-code.
118
+     *
119
+     * @param string $isoCode
120
+     *
121
+     * @return HolidayIterator
122
+     */
123
+    public function createIteratorFromISO3166(string $isoCode): HolidayIterator
124
+    {
125
+        $file = __DIR__ . '/../share/%s.xml';
126
+        $file1 = sprintf($file, $isoCode);
127
+
128
+        if (!is_readable($file1)) {
129
+            throw new UnexpectedValueException(sprintf(
130
+                'There is no holiday-file for %s',
131
+                $isoCode
132
+            ));
133
+        }
134
+
135
+        return $this->createIteratorFromXmlFile($file1);
136
+    }
137
+
138
+    private function getElement(DOMElement $child): HolidayIteratorItemInterface
139
+    {
140
+        foreach ($this->factories as $factory) {
141
+            $element = $factory->itemFromDomElement($child);
142
+            if ($element instanceof HolidayIteratorItemInterface) {
143
+                return $element;
144
+            }
145
+        }
146
+
147
+        throw new RuntimeException('Unknown element encountered');
148
+    }
149
+
150
+    private function decorateElement(HolidayIteratorItemInterface $element, DOMElement $child): HolidayIteratorItemInterface
151
+    {
152
+        foreach ($this->decorators as $decorator) {
153
+            $element = $decorator->decorate($element, $child);
154
+        }
155
+
156
+        return $element;
157
+    }
158 158
 }
Please login to merge, or discard this patch.