original_string: public function initialize(
          SessionInterface $session,
          ObjectTypeInterface $objectType,
          OperationContextInterface $context,
          ObjectDataInterface $objectData = null
      ) {
          if (count($this->getMissingBaseProperties($objectType->getPropertyDefinitions())) !== 0) {
              throw new CmisInvalidArgumentException(
                  sprintf(
                      'Object type must have at least the base property definitions! '
                      . 'These property definitions are missing: %s',
                      implode(', ', PropertyIds::getBasePropertyKeys())
                  )
              );
          };
  
          $this->session = $session;
          $this->objectType = $objectType;
          $this->secondaryTypes = null;
          $this->creationContext = clone $context;
          $this->refreshTimestamp = (integer) round(microtime(true) * 1000);
  
          if ($objectData !== null) {
              $this->initializeObjectData($objectData);
          }
      }
code: public function initialize(
          SessionInterface $session,
          ObjectTypeInterface $objectType,
          OperationContextInterface $context,
          ObjectDataInterface $objectData = null
      ) {
          if (count($this->getMissingBaseProperties($objectType->getPropertyDefinitions())) !== 0) {
              throw new CmisInvalidArgumentException(
                  sprintf(
                      'Object type must have at least the base property definitions! '
                      . 'These property definitions are missing: %s',
                      implode(', ', PropertyIds::getBasePropertyKeys())
                  )
              );
          };
  
          $this->session = $session;
          $this->objectType = $objectType;
          $this->secondaryTypes = null;
          $this->creationContext = clone $context;
          $this->refreshTimestamp = (integer) round(microtime(true) * 1000);
  
          if ($objectData !== null) {
              $this->initializeObjectData($objectData);
          }
      }
code_tokens: public function initialize ( SessionInterface $ session , ObjectTypeInterface $ objectType , OperationContextInterface $ context , ObjectDataInterface $ objectData = null ) { if ( count ( $ this -> getMissingBaseProperties ( $ objectType -> getPropertyDefinitions ( ) ) ) !== 0 ) { throw new CmisInvalidArgumentException ( sprintf ( 'Object type must have at least the base property definitions! ' . 'These property definitions are missing: %s' , implode ( ', ' , PropertyIds :: getBasePropertyKeys ( ) ) ) ) ; } ; $ this -> session = $ session ; $ this -> objectType = $ objectType ; $ this -> secondaryTypes = null ; $ this -> creationContext = clone $ context ; $ this -> refreshTimestamp = ( integer ) round ( microtime ( true ) * 1000 ) ; if ( $ objectData !== null ) { $ this -> initializeObjectData ( $ objectData ) ; } }
docstring: Initialize the CMIS Object
  
  @param SessionInterface $session
  @param ObjectTypeInterface $objectType
  @param OperationContextInterface $context
  @param ObjectDataInterface|null $objectData
docstring_tokens: Initialize the CMIS Object