GivenRawOutput($sName), $this->GivenRawInput($sName)); } public function GivenRawInput(string $sName): FormInput { $oBlock = $this->GivenFormBlock($sName.'_block'); return new FormInput($sName.'_input', RawFormat::class, $oBlock); } public function GivenRawOutput(string $sName): FormOutput { $oBlock = $this->GivenFormBlock($sName.'_block'); return new FormOutput($sName.'_output', RawFormat::class, $oBlock); } public function GivenFormBlock(string $sName, array $aOptions = [], array $aIOs = []): AbstractFormBlock { $oBlock = new FormBlock($sName, $aOptions); foreach ($aIOs as $aIO) { if ($aIO['io_type'] === FormInput::class) { $oBlock->AddInput($aIO['name'], $aIO['data_type']); } else { if (isset($aIO['converter_class'])) { $oBlock->AddOutput($aIO['name'], $aIO['data_type'], new $aIO['converter_class']); } else { $oBlock->AddOutput($aIO['name'], $aIO['data_type']); } } } return $oBlock; } }