3 namespace Domain\Entities\StepMania
;
6 use Domain\Entities\StepMania\ISimfile
;
7 use Domain\Entities\IUser
;
8 use Domain\Entities\IFile
;
9 use Domain\Entities\IPack
;
10 use Domain\Entities\AbstractEntity
;
12 class Pack
extends AbstractEntity
implements IPack
19 public function __construct(
25 $this->_title
= $title;
26 $this->_uploader
= $uploader;
29 foreach($simfiles as $simfile) {
30 if(!$simfile instanceof ISimfile
) {
31 throw new Exception('Invalid Simfile array. All elements must be an instance of ISimfile.');
35 $this->_simfiles
= $simfiles;
38 public function getContributors() {
39 $contributors = array();
40 foreach($this->_simfiles
as $simfile)
42 /* @var $simfile \Domain\Entities\StepMania\Simfile */
43 $contributors = array_unique(
44 array_merge($contributors, $this->getAllStepArtistsFromSimfile($simfile))
51 public function getFile()
56 public function getSimfiles()
61 public function getTitle()
66 public function getUploader()
68 return $this->_uploader
;
71 private function getAllStepArtistsFromSimfile(ISimfile
$simfile)
74 foreach($simfile->getSteps() as $steps)
76 /* @var $steps \Domain\VOs\StepMania\IStepChart */
77 if(!in_array($steps->getArtist(), $artists)) $artists[] = $steps->getArtist ();