/** * * @return ActivityProcessorFactory */ public static function getInstance() { if (!self::$_instance) { self::$_instance = new ActivityProcessorFactory(); } return self::$_instance; }
/** * @param AtomEntryAdapter $item * @return array */ public function readEntry(AtomEntryAdapter $entry) { // Get the activity entry $activityEntry = $entry->getExtension(ActivityNS::NS); $data = array(); $published = $entry->getPublished(); if (isset($published)) { // The published value of the data is only obtained from the atom:published, otherwise it is not exists $data['published'] = toTimestamp($published->value); } else { $data['published'] = ''; } // process the entry if (isset($activityEntry->object[0])) { if (isset($activityEntry->object[0]->id)) { // Get the Object IRI $data['iri'] = $activityEntry->object[0]->id->value; } else { $data['iri'] = ''; } // Get the Object processor $activityProcessor = ActivityProcessorFactory::getInstance(); $object = $activityProcessor->getProcessor($activityEntry->object[0]); // Process the entry according to its type switch ($object->getType()) { case ActivityNS::STATUS_OBJECT_TYPE: $data = $this->_readStatusEntry($data, $object); break; case ActivityNS::ARTICLE_OBJECT_TYPE: $data = $this->_readBlogEntry($data, $object); break; case ActivityNS::BOOKMARK_OBJECT_TYPE: $data = $this->_readLinkEntry($data, $object); break; case ActivityNS::PHOTO_OBJECT_TYPE: $data = $this->_readImageEntry($data, $object); break; case ActivityNS::AUDIO_OBJECT_TYPE: $data = $this->_readAudioEntry($data, $object); break; case ActivityNS::VIDEO_OBJECT_TYPE: $data = $this->_readVideoEntry($data, $object); break; default: $data = $this->_readDefaultEntry($data, $entry); } } else { $data = $this->_readDefaultEntry($data, $entry); } return $data; }
public static function setupActivityProcessorFactory() { $activityProcessor = ActivityProcessorFactory::getInstance(); $activityProcessor->registerProcessor(ActivityNS::STATUS_OBJECT_TYPE, 'StatusObjectProcessor', 0); $activityProcessor->registerProcessor(ActivityNS::ARTICLE_OBJECT_TYPE, 'ArticleObjectProcessor', 0); $activityProcessor->registerProcessor(ActivityNS::AUDIO_OBJECT_TYPE, 'AudioObjectProcessor', 0); $activityProcessor->registerProcessor(ActivityNS::PHOTO_OBJECT_TYPE, 'PhotoObjectProcessor', 0); $activityProcessor->registerProcessor(ActivityNS::BOOKMARK_OBJECT_TYPE, 'BookmarkObjectProcessor', 0); $activityProcessor->registerProcessor(ActivityNS::VIDEO_OBJECT_TYPE, 'VideoObjectProcessor', 0); $activityProcessor->registerProcessor(ActivityNS::COMMENT_OBJECT_TYPE, 'CommentObjectProcessor', 0); }