original_string: public function getProperties(
          $repositoryId,
          $objectId,
          $filter = null,
          ExtensionDataInterface $extension = null
      ) {
          $cacheKey = $this->createCacheKey(
              $objectId,
              [
                  $repositoryId,
                  $filter,
                  $extension,
                  $this->getSuccinct()
              ]
          );
  
          if ($this->isCached($cacheKey)) {
              return $this->getCached($cacheKey);
          }
  
          $url = $this->getObjectUrl($repositoryId, $objectId, Constants::SELECTOR_PROPERTIES);
          $url->getQuery()->modify(
              [
                  Constants::PARAM_SUCCINCT => $this->getSuccinct() ? 'true' : 'false',
                  Constants::PARAM_DATETIME_FORMAT => (string) $this->getDateTimeFormat()
              ]
          );
  
          if (!empty($filter)) {
              $url->getQuery()->modify([Constants::PARAM_FILTER => (string) $filter]);
          }
  
          $responseData = (array) $this->readJson($url);
  
          if ($this->getSuccinct()) {
              $objectData = $this->getJsonConverter()->convertSuccinctProperties($responseData);
          } else {
              $objectData = $this->getJsonConverter()->convertProperties($responseData);
          }
  
          return $this->cache(
              $cacheKey,
              $objectData
          );
      }
code: public function getProperties(
          $repositoryId,
          $objectId,
          $filter = null,
          ExtensionDataInterface $extension = null
      ) {
          $cacheKey = $this->createCacheKey(
              $objectId,
              [
                  $repositoryId,
                  $filter,
                  $extension,
                  $this->getSuccinct()
              ]
          );
  
          if ($this->isCached($cacheKey)) {
              return $this->getCached($cacheKey);
          }
  
          $url = $this->getObjectUrl($repositoryId, $objectId, Constants::SELECTOR_PROPERTIES);
          $url->getQuery()->modify(
              [
                  Constants::PARAM_SUCCINCT => $this->getSuccinct() ? 'true' : 'false',
                  Constants::PARAM_DATETIME_FORMAT => (string) $this->getDateTimeFormat()
              ]
          );
  
          if (!empty($filter)) {
              $url->getQuery()->modify([Constants::PARAM_FILTER => (string) $filter]);
          }
  
          $responseData = (array) $this->readJson($url);
  
          if ($this->getSuccinct()) {
              $objectData = $this->getJsonConverter()->convertSuccinctProperties($responseData);
          } else {
              $objectData = $this->getJsonConverter()->convertProperties($responseData);
          }
  
          return $this->cache(
              $cacheKey,
              $objectData
          );
      }
code_tokens: public function getProperties ( $ repositoryId , $ objectId , $ filter = null , ExtensionDataInterface $ extension = null ) { $ cacheKey = $ this -> createCacheKey ( $ objectId , [ $ repositoryId , $ filter , $ extension , $ this -> getSuccinct ( ) ] ) ; if ( $ this -> isCached ( $ cacheKey ) ) { return $ this -> getCached ( $ cacheKey ) ; } $ url = $ this -> getObjectUrl ( $ repositoryId , $ objectId , Constants :: SELECTOR_PROPERTIES ) ; $ url -> getQuery ( ) -> modify ( [ Constants :: PARAM_SUCCINCT => $ this -> getSuccinct ( ) ? 'true' : 'false' , Constants :: PARAM_DATETIME_FORMAT => ( string ) $ this -> getDateTimeFormat ( ) ] ) ; if ( ! empty ( $ filter ) ) { $ url -> getQuery ( ) -> modify ( [ Constants :: PARAM_FILTER => ( string ) $ filter ] ) ; } $ responseData = ( array ) $ this -> readJson ( $ url ) ; if ( $ this -> getSuccinct ( ) ) { $ objectData = $ this -> getJsonConverter ( ) -> convertSuccinctProperties ( $ responseData ) ; } else { $ objectData = $ this -> getJsonConverter ( ) -> convertProperties ( $ responseData ) ; } return $ this -> cache ( $ cacheKey , $ objectData ) ; }
docstring: Gets the list of properties for an object.
  
  @param string $repositoryId the identifier for the repository
  @param string $objectId the identifier for the object
  @param string|null $filter a comma-separated list of query names that defines which properties must be
  returned by the repository (default is repository specific)
  @param ExtensionDataInterface|null $extension
  @return PropertiesInterface
docstring_tokens: Gets the list of properties for an object .