- public function findByArtist($artist){}\r
- public function findByBpm($high, $low){}\r
- public function findByStepArtist($artistName){}\r
- public function findByLightMeter($feet){}\r
- public function findByBeginnerMeter($feet){}\r
- public function findByMediumMeter($feet){}\r
- public function findByHardMeter($feet){}\r
- public function findByExpertMeter($feet){}\r
+ public function findByStepArtist($artistName, ISimfileQueryConstraints $constraints = null)\r
+ {\r
+ $queryBuilder = $this->_queryBuilderFactory->createInstance();\r
+ $queryBuilder->join('inner', 'simfiles', 'id', 'steps', 'simfile_id')\r
+ ->join('inner', 'steps', 'step_artist_id', 'step_artists', 'id')\r
+ ->where('tag', 'LIKE', "%%$artistName%%");\r
+ \r
+ return $this->applyConstraintsAndReturn($constraints, $queryBuilder);\r
+ }\r
+ \r
+ private function findByDifficultyAndRating($difficulty, $rating, ISimfileQueryConstraints $constraints = null)\r
+ {\r
+ $queryBuilder = $this->_queryBuilderFactory->createInstance();\r
+ $queryBuilder->join('inner', 'simfiles', 'id', 'steps', 'simfile_id')\r
+ ->where('difficulty', '=', $difficulty)\r
+ ->where('rating', '=', $rating);\r
+ \r
+ return $this->applyConstraintsAndReturn($constraints, $queryBuilder);\r
+ }\r
+ \r
+ public function findByLightMeter($feet, ISimfileQueryConstraints $constraints = null)\r
+ {\r
+ return $this->findByDifficultyAndRating('light', $feet, $constraints);\r
+ }\r
+ \r
+ public function findByBeginnerMeter($feet, ISimfileQueryConstraints $constraints = null)\r
+ {\r
+ return $this->findByDifficultyAndRating('beginner', $feet, $constraints);\r
+ }\r
+ \r
+ public function findByMediumMeter($feet, ISimfileQueryConstraints $constraints = null)\r
+ {\r
+ return $this->findByDifficultyAndRating('medium', $feet, $constraints);\r
+ }\r
+ \r
+ public function findByHardMeter($feet, ISimfileQueryConstraints $constraints = null)\r
+ {\r
+ return $this->findByDifficultyAndRating('challenge', $feet, $constraints);\r
+ }\r
+ \r
+ public function findByExpertMeter($feet, ISimfileQueryConstraints $constraints = null)\r
+ {\r
+ return $this->findByDifficultyAndRating('expert', $feet, $constraints);\r
+ }\r