1<?php 2namespace Kunnu\Dropbox\Models; 3 4class ModelFactory 5{ 6 7 /** 8 * Make a Model Factory 9 * 10 * @param array $data Model Data 11 * 12 * @return \Kunnu\Dropbox\Models\ModelInterface 13 */ 14 public static function make(array $data = array()) 15 { 16 if (isset($data['.tag']) && isset($data['id'])) { 17 $tag = $data['.tag']; 18 19 //File 20 if ($tag === 'file') { 21 return new FileMetadata($data); 22 } 23 24 //Folder 25 if ($tag === 'folder') { 26 return new FolderMetadata($data); 27 } 28 } 29 30 //Temporary Link 31 if (isset($data['metadata']) && isset($data['link'])) { 32 return new TemporaryLink($data); 33 } 34 35 //List 36 if (isset($data['entries'])) { 37 return new MetadataCollection($data); 38 } 39 40 //Search Results 41 if (isset($data['matches'])) { 42 return new SearchResults($data); 43 } 44 45 //Deleted File/Folder 46 if (!isset($data['.tag']) || !isset($data['id'])) { 47 return new DeletedMetadata($data); 48 } 49 50 //Base Model 51 return new BaseModel($data); 52 } 53} 54