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 build();
42 abstract class AbstractFileStepByStepBuilder
44 /* @var $_simfileBuilder Domain\Entities\StepMania\ISimfileBuilder */
45 protected $_fileBuilder;
47 public function __construct(IFileBuilder
$builder)
49 $this->_fileBuilder
= $builder;
53 class FileStepByStepBuilder
extends AbstractFileStepByStepBuilder
implements IFileStepByStepBuilder
55 public function With_Hash($hash) {
56 $this->_fileBuilder
->With_Hash($hash);
57 return new FileStepByStepBuilder_With_Hash($this->_fileBuilder
);
61 class FileStepByStepBuilder_With_Hash
extends AbstractFileStepByStepBuilder
implements IFileStepByStepBuilder_With_Hash
63 public function With_Path($path) {
64 $this->_fileBuilder
->With_Path($path);
65 return new FileStepByStepBuilder_With_Path($this->_fileBuilder
);
69 class FileStepByStepBuilder_With_Path
extends AbstractFileStepByStepBuilder
implements IFileStepByStepBuilder_With_Path
71 public function With_Filename($filename) {
72 $this->_fileBuilder
->With_Filename($filename);
73 return new FileStepByStepBuilder_With_Filename($this->_fileBuilder
);
77 class FileStepByStepBuilder_With_Filename
extends AbstractFileStepByStepBuilder
implements IFileStepByStepBuilder_With_Filename
79 public function With_Mimetype($mimetype) {
80 $this->_fileBuilder
->With_Mimetype($mimetype);
81 return new FileStepByStepBuilder_With_Mimetype($this->_fileBuilder
);
85 class FileStepByStepBuilder_With_Mimetype
extends AbstractFileStepByStepBuilder
implements IFileStepByStepBuilder_With_Mimetype
87 public function With_Size($size) {
88 $this->_fileBuilder
->With_Size($size);
89 return new FileStepByStepBuilder_With_Size($this->_fileBuilder
);
93 class FileStepByStepBuilder_With_Size
extends AbstractFileStepByStepBuilder
implements IFileStepByStepBuilder_With_Size
95 public function With_UploadDate($date) {
96 $this->_fileBuilder
->With_UploadDate($date);
97 return new FileStepByStepBuilder_With_UploadDate($this->_fileBuilder
);
101 class FileStepByStepBuilder_With_UploadDate
extends AbstractFileStepByStepBuilder
implements IFileStepByStepBuilder_With_UploadDate
103 public function build() {
104 return $this->_fileBuilder