public function warm()
    {

        // load the available EAV attribute option values
        $eavAttributeOptionValues = $this->repository->findAll();

        // prepare the caches for the statements
        foreach ($eavAttributeOptionValues as $eavAttributeOptionValue) {
            // prepare the cache key and add the option value to the cache
            $cacheKey1 = $this->repository->cacheKey(
                SqlStatementKeys::EAV_ATTRIBUTE_OPTION_VALUE_BY_OPTION_ID_AND_STORE_ID,
                array(
                    MemberNames::STORE_ID  => $eavAttributeOptionValue[MemberNames::STORE_ID],
                    MemberNames::OPTION_ID => $eavAttributeOptionValue[MemberNames::OPTION_ID]
                )
            );

            // prepare the cache key and add the option value to the cache
            $cacheKey2 = $this->repository->cacheKey(
                SqlStatementKeys::EAV_ATTRIBUTE_OPTION_VALUE_BY_ATTRIBUTE_CODE_AND_STORE_ID_AND_VALUE,
                array(
                    MemberNames::ATTRIBUTE_CODE => $eavAttributeOptionValue[MemberNames::ATTRIBUTE_CODE],
                    MemberNames::STORE_ID       => $eavAttributeOptionValue[MemberNames::STORE_ID],
                    MemberNames::VALUE          => $eavAttributeOptionValue[MemberNames::VALUE]
                )
            );

            // add the EAV attribute option value to the cache
            $this->repository->toCache(
                $eavAttributeOptionValue[MemberNames::VALUE_ID],
                $eavAttributeOptionValue,
                array(
                    $cacheKey1 => $eavAttributeOptionValue[MemberNames::VALUE_ID],
                    $cacheKey2 => $eavAttributeOptionValue[MemberNames::VALUE_ID]
                )
            );
        }
    }