/** * Creates an instance with data * * @param array $data * @return self */ public static function create(array $data = array()) { $defaults = array('id' => null, 'folder_id' => null, 'profile' => null, 'name' => null, 'date_created' => new DateTime(), 'status' => null, 'resource' => null, 'uuid' => null, 'data' => new IdentifiableDataContainer(array())); $data = array_merge($defaults, $data); $obj = new self(); $obj->setId($data['id']); $obj->setFolderId($data['folder_id']); $obj->setProfile($data['profile']); $obj->setName($data['name']); $obj->setDateCreated($data['date_created']); $obj->setStatus($data['status']); $obj->setResource($data['resource']); $obj->setUuid($data['uuid']); $obj->setData($data['data']); return $obj; }