[Rumble-jp-dev] イメージ&SQL について

Back to archive index

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*****>





Rumble-jp-dev メーリングリストの案内
Back to archive index