private function createConfigurationInstance(
        $configurationIdentifier,
        $configurationNamespace,
        $configurationKey,
        $configurationValue
    ) {
        /**
         * Value is not found on database. We can just check if the value is
         * defined in the configuration elements, and we can generate new entry
         * for our database.
         */
        if (!$this->configurationElements[$configurationIdentifier]) {
            throw new ConfigurationParameterNotFoundException();
        }

        $configurationType = $this->configurationElements[$configurationIdentifier]['type'];

        $configurationValue = $this
            ->serializeValue(
                $configurationValue,
                $configurationType
            );

        $configurationEntity = $this
            ->configurationFactory
            ->create()
            ->setKey($configurationKey)
            ->setNamespace($configurationNamespace)
            ->setName($this->configurationElements[$configurationIdentifier]['name'])
            ->setType($configurationType)
            ->setValue($configurationValue);

        return $configurationEntity;
    }