Analageous to a table in a traditional RDBMS, a repository is a siloed collection where documents live.
 /**
  * @return EncryptedTransaction[]
  */
 public function findAll()
 {
     /** @var EncryptedTransactionDocument[] $result */
     $result = $this->repository->findAll();
     $encryptedTransactions = $this->documentArrayToObjectArray($result);
     return $encryptedTransactions;
 }
 /**
  * @return Wallet[]
  */
 public function findAll()
 {
     /** @var EncryptedWalletDocument[] $result */
     $result = $this->repository->findAll();
     $wallets = $this->documentArrayToObjectArray($result);
     return $wallets;
 }
 public function testChangingDocumentIDChangesFilename()
 {
     if (!is_dir('/tmp/flywheel')) {
         mkdir('/tmp/flywheel');
     }
     $config = new Config('/tmp/flywheel');
     $repo = new Repository('_pages', $config);
     $doc = new Document(array('test' => '123'));
     $doc->setId('test1234');
     $repo->store($doc);
     $this->assertTrue(file_exists('/tmp/flywheel/_pages/test1234.json'));
     $doc->setId('9876test');
     $repo->update($doc);
     $this->assertFalse(file_exists('/tmp/flywheel/_pages/test1234.json'));
 }
 /**
  * @return EncryptedAddress[]
  */
 public function findAll()
 {
     $result = $this->repository->findAll();
     $encryptedAddresses = $this->documentArrayToObjectArray($result);
     return $encryptedAddresses;
 }