public function createRequestArray(Client $client) {

		$sourceArray = $this->getInputData();

		if (!$sourceArray) {
			return null;
		}

		$config = $client->getConfig();

		/*
		if (!array_key_exists('dttm', $sourceArray)) {
			$sourceArray = array(
					'dttm' => $this->getDTTM()
				) + $sourceArray;
		} elseif (!$sourceArray['dttm']) {
			$sourceArray['dttm'] = $this->getDTTM();
		}

		if (!array_key_exists('extension', $sourceArray)) {
			$sourceArray = array(
				'extension' => $this->getExtensionId()
			) + $sourceArray;
		} elseif (!$sourceArray['extension']) {
			$sourceArray['extension'] = $this->getExtensionId();
		}*/

		if (array_key_exists('dttm', $sourceArray) and !$sourceArray['dttm']) {
			$sourceArray['dttm'] = $client->getDTTM();
		}
		if (array_key_exists('extension', $sourceArray) and !$sourceArray['extension']) {
			$sourceArray['extension'] = $this->getExtensionId();
		}

		$baseString = $this->getRequestSignatureBase($sourceArray);
		$client->writeToTraceLog('Signing request of extension ' . $this->extensionId . ', base string is:' . "\n" . $baseString);
		$signature = Crypto::signString($baseString, $config->privateKeyFile, $config->privateKeyPassword);

		$sourceArray['signature'] = $signature;

		return $sourceArray;

	}