3 namespace Domain\Entities
;
5 use Domain\Entities\IFileBuilder
;
7 interface IFileStepByStepBuilder
9 public function With_Hash($hash);
12 interface IFileStepByStepBuilder_With_Hash
14 public function With_Path($path);
17 interface IFileStepByStepBuilder_With_Path
19 public function With_Filename($filename); //TODO: Make user object
22 interface IFileStepByStepBuilder_With_Filename
24 public function With_Mimetype($mimetype);
27 interface IFileStepByStepBuilder_With_Mimetype
29 public function With_Size($size);
32 interface IFileStepByStepBuilder_With_Size
34 public function With_UploadDate($date);
37 interface IFileStepByStepBuilder_With_UploadDate
39 public function With_Mirrors(array $mirrors = null
);
40 public function build();
43 abstract class AbstractFileStepByStepBuilder
45 /* @var $_simfileBuilder Domain\Entities\StepMania\ISimfileBuilder */
46 protected $_fileBuilder;
48 public function __construct(IFileBuilder
$builder)
50 $this->_fileBuilder
= $builder;
54 class FileStepByStepBuilder
extends AbstractFileStepByStepBuilder
implements IFileStepByStepBuilder
56 public function With_Hash($hash) {
57 $this->_fileBuilder
->With_Hash($hash);
58 return new FileStepByStepBuilder_With_Hash($this->_fileBuilder
);
62 class FileStepByStepBuilder_With_Hash
extends AbstractFileStepByStepBuilder
implements IFileStepByStepBuilder_With_Hash
64 public function With_Path($path) {
65 $this->_fileBuilder
->With_Path($path);
66 return new FileStepByStepBuilder_With_Path($this->_fileBuilder
);
70 class FileStepByStepBuilder_With_Path
extends AbstractFileStepByStepBuilder
implements IFileStepByStepBuilder_With_Path
72 public function With_Filename($filename) {
73 $this->_fileBuilder
->With_Filename($filename);
74 return new FileStepByStepBuilder_With_Filename($this->_fileBuilder
);
78 class FileStepByStepBuilder_With_Filename
extends AbstractFileStepByStepBuilder
implements IFileStepByStepBuilder_With_Filename
80 public function With_Mimetype($mimetype) {
81 $this->_fileBuilder
->With_Mimetype($mimetype);
82 return new FileStepByStepBuilder_With_Mimetype($this->_fileBuilder
);
86 class FileStepByStepBuilder_With_Mimetype
extends AbstractFileStepByStepBuilder
implements IFileStepByStepBuilder_With_Mimetype
88 public function With_Size($size) {
89 $this->_fileBuilder
->With_Size($size);
90 return new FileStepByStepBuilder_With_Size($this->_fileBuilder
);
94 class FileStepByStepBuilder_With_Size
extends AbstractFileStepByStepBuilder
implements IFileStepByStepBuilder_With_Size
96 public function With_UploadDate($date) {
97 $this->_fileBuilder
->With_UploadDate($date);
98 return new FileStepByStepBuilder_With_UploadDate($this->_fileBuilder
);
102 class FileStepByStepBuilder_With_UploadDate
extends AbstractFileStepByStepBuilder
implements IFileStepByStepBuilder_With_UploadDate
104 public function With_Mirrors(array $mirrors = null
) {
105 $this->_fileBuilder
->With_Mirrors($mirrors);
106 return new FileStepByStepBuilder_With_UploadDate($this->_fileBuilder
);
109 public function build() {
110 return $this->_fileBuilder