public static function fromModel(StatementModel $model)
 {
     $statement = new self();
     $statement->id = $model->getId()->getValue();
     $statement->actor = Object::fromModel($model->getActor());
     $statement->verb = Verb::fromModel($model->getVerb());
     $statement->object = Object::fromModel($model->getObject());
     if (null !== $model->getTimestamp()) {
         $statement->created = $model->getTimestamp()->getTimestamp();
     }
     if (null !== ($result = $model->getResult())) {
         $statement->result = Result::fromModel($result);
     }
     if (null !== ($authority = $model->getAuthority())) {
         $statement->authority = Object::fromModel($authority);
     }
     if (null !== ($context = $model->getContext())) {
         $statement->context = Context::fromModel($context);
     }
     if (null !== ($attachments = $model->getAttachments())) {
         $statement->hasAttachments = true;
         $statement->attachments = array();
         foreach ($attachments as $attachment) {
             $mappedAttachment = Attachment::fromModel($attachment);
             $mappedAttachment->statement = $statement;
             $statement->attachments[] = $mappedAttachment;
         }
     } else {
         $statement->hasAttachments = false;
     }
     return $statement;
 }
 private static function fromSubStatement(SubStatement $model)
 {
     $object = new self();
     $object->type = self::TYPE_SUB_STATEMENT;
     $object->actor = Object::fromModel($model->getActor());
     $object->verb = Verb::fromModel($model->getVerb());
     $object->object = Object::fromModel($model->getObject());
     return $object;
 }
 public static function fromModel(ContextModel $model)
 {
     $context = new self();
     $context->registration = $model->getRegistration();
     $context->revision = $model->getRevision();
     $context->platform = $model->getPlatform();
     $context->language = $model->getLanguage();
     if (null !== ($instructor = $model->getInstructor())) {
         $context->instructor = Object::fromModel($instructor);
     }
     if (null !== ($team = $model->getTeam())) {
         $context->team = Object::fromModel($team);
     }
     if (null !== ($contextActivities = $model->getContextActivities())) {
         $context->hasContextActivities = true;
         if (null !== ($parentActivities = $contextActivities->getParentActivities())) {
             $context->parentActivities = array();
             foreach ($parentActivities as $parentActivity) {
                 $activity = Object::fromModel($parentActivity);
                 $activity->parentContext = $context;
                 $context->parentActivities[] = $activity;
             }
         }
         if (null !== ($groupingActivities = $contextActivities->getGroupingActivities())) {
             $context->groupingActivities = array();
             foreach ($groupingActivities as $groupingActivity) {
                 $activity = Object::fromModel($groupingActivity);
                 $activity->groupingContext = $context;
                 $context->groupingActivities[] = $activity;
             }
         }
         if (null !== ($categoryActivities = $contextActivities->getCategoryActivities())) {
             $context->categoryActivities = array();
             foreach ($categoryActivities as $categoryActivity) {
                 $activity = Object::fromModel($categoryActivity);
                 $activity->categoryContext = $context;
                 $context->categoryActivities[] = $activity;
             }
         }
         if (null !== ($otherActivities = $contextActivities->getOtherActivities())) {
             $context->otherActivities = array();
             foreach ($otherActivities as $otherActivity) {
                 $activity = Object::fromModel($otherActivity);
                 $activity->otherContext = $context;
                 $context->otherActivities[] = $activity;
             }
         }
     } else {
         $context->hasContextActivities = false;
     }
     if (null !== ($statementReference = $model->getStatement())) {
         $context->statement = $statementReference->getStatementId()->getValue();
     }
     if (null !== ($contextExtensions = $model->getExtensions())) {
         $context->extensions = Extensions::fromModel($contextExtensions);
     }
     return $context;
 }