3 namespace Domain\Entities\StepMania
;
5 use Domain\VOs\StepMania\IArtist
;
6 use Domain\VOs\StepMania\IBPM
;
7 use Domain\Entities\IUser
;
8 use Domain\Entities\IFile
;
9 use Domain\Entities\StepMania\ISimfileFactory
;
10 use Domain\Entities\StepMania\ISimfileBuilder
;
12 class SimfileBuilder
implements ISimfileBuilder
14 private $_simfileFactory;
28 public function __construct(ISimfileFactory
$simfileFactory) {
29 $this->_simfileFactory
= $simfileFactory;
32 public function With_Title($title)
34 $this->_title
= $title;
38 public function With_Artist(IArtist
$artist) {
39 $this->_artist
= $artist;
43 public function With_Uploader(IUser
$uploader) {
44 $this->_uploader
= $uploader;
48 public function With_BPM(IBPM
$bpm) {
53 public function With_BpmChanges($const) {
54 $this->_bpmChanges
= $const;
58 public function With_Stops($const) {
59 $this->_stops
= $const;
63 public function With_FgChanges($const) {
64 $this->_fgChanges
= $const;
68 public function With_BgChanges($const) {
69 $this->_bgChanges
= $const;
73 public function With_Banner(IFile
$banner) {
74 $this->_banner
= $banner;
78 public function With_Simfile(IFile
$simfile) {
79 $this->_simfile
= $simfile;
83 public function With_Steps(array $steps) {
84 $this->_steps
= $steps;
88 public function build() {
89 return $this->_simfileFactory
90 ->createInstance($this->_title
,