Naoki Kurosawa
naoki_kuros****@ybb*****
2003年 2月 13日 (木) 00:54:44 JST
黒澤です。 L> ということは、ロボットIDは L> RobotA 1.0 : robotID=1 VerID=1 L> RobotA 1.1 : robotID=1 VerID=2 L> というイメージですね。 L> VerID=robot_version_idなのでしょうか? そうです。 が、VerIDはロボットごとに1から振るのではなく、全ロボットで通番になって います。 ですので、robot_version_idのみで全ロボット全バージョンの中で、 あるロボットのあるバージョンを一意に特定できます。 L> ユーザIDで登録したロボット全部を取得するのと L> 登録したロボットの最新バージョンのみを取得するもの。 L> Collection or Robot[] getAllRobots(int UserID) L> Collection or Robot[] getCurrentRobots(int UserID) Robotクラス(およびrobotsテーブル)は、バージョンに関わらず あるロボットを一意にあらわすものなので、 getAllRobotsとgetCurrentRobotsは同じものを返すことになってしまいます。 ユーザIDをキーに、 全ロボットの全バージョンを取得したいのであれば、 Robot{ name=A, ver=1.0 , robotID=1 VerID=1 } Robot{ name=A, ver=1.1 , robotID=1 VerID=2 } Robot{ name=B, ver=1.0 , robotID=2 VerID=3 } と返ってくるよりも、 Robot{ name=A, robotID=1 RobotVersion{ ver=1.0, VerID=1 } RobotVersion{ ver=1.0, VerID=2 } } Robot{ name=B, robotID=2 RobotVersion{ ver=1.0, VerID=3 } } と返ってきた方が便利じゃないですか? ということで、上記のような戻り値を返すメソッドがあるだけで 事足りますね? いまのgetRobotsはRobotVersion情報がありませんが、それを追加します。 getRobotsWithVersionsという名前にします。 L> ロボットIDでそのロボットの最新バージョンと全バージョン取得。 L> RobotVersion getRobot(int RobotID) L> Collection or RobotVersion[] getRobots(int RobotID) ということで、 ■Robotクラス RobotVersion[] getVersions() メソッドを追加 ■RobotManager /** * 特定ユーザの全ロボット全バージョンを返す。 * @param userId ユーザID * @param verAsc バージョン情報の並び順。trueで小さい順(古い順)。 * @return Robot[] 全ロボットの配列(getVersions()でバージョン情報を取得 * 可能)。 * ロボットIDの小さい順に整列。 **/ Robot[] getRobotsWithVersions(int userId, boolean verAsc) /** * 特定ユーザの全ロボットを返す(バージョンはカレントのもの)。 * @param userId ユーザID * @return Robot[] 全ロボットの配列(Robot#getVersions()はnullを返す)。 * ロボットIDの小さい順に整列。 **/ Robot[] getRobots(int userId) /** * 特定ロボットの最新バージョンを返す。 * @param robotId ロボットID * @return RobotVersion 最新バージョン情報 **/ RobotVersion getRobotCurrentVersion(int robotId) /** * 特定ロボットの全バージョン情報を返す。 * @param robotId ロボットID * @param verAsc バージョン情報の並び順。trueで小さい順(古い順)。 * @return RobotVersion[] バージョン情報の配列。 **/ RobotVersion[] getRobotVersions(int robotId, boolean verAsc) -- Naoki Kurosawa <naoki_kuros****@ybb*****>