クラスの定義
それではクラスの定義を行ってみましょう。Visual Studio CodeのワークスペースにDriveDemo/Dataというフォルダを作成し、「新しいファイル」ボタンでCarLatest.clsを新規に作成してください(次図)。
そして、エディタ画面で次のように入力してください。このクラスは、車のIDをキーとして最新の情報(時刻、緯度・経度、速度、方位、加速度など)を保持するものです。
Class DriveDemo.Data.CarLatest Extends %Persistent
{
Property CarId As %String;
Property Tm As %TimeStamp;
Property RelativeTm As %Integer;
Property Longitude As %Float;
Property Latitude As %Float;
Property Azimuth As %Float;
Property Speed As %Float;
Property EngineRPM As %Float;
Property AccelPos As %Float;
Property BrakeSW As %Boolean;
Property AcumDistance As %Float;
Property AcumFuel As %Float;
Property FuelInjection As %Float;
Property aX As %Float;
Property aY As %Float;
Property aZ As %Float;
Index MainIdx On CarId;
Index TmIdx On Tm;
}
IRISでクラスを定義する際の基本的な事項を、いくつか説明します。
クラス宣言
1行目でClassキーワードで始まるのはクラス宣言です。クラス名は、パッケージ名と名称から構成されます。パッケージ名は複数階層を”.”でつなげることができます。ここでは、DriveDemo.Dataがパッケージ名、CarLatestが名称です。
Extends %Persistentでは、継承するクラスを指定しています。%PersistentはIRISのライブラリに用意されたもので、クラスのインスタンスデータをデータベースに保存する機能を提供します。つまり、DriveDemo.Data.CarLatestクラスは、インスタンスをデータベースに保存できることになります。
プロパティ宣言
定義本体で宣言しているのはPropertyキーワードで始まるプロパティ宣言です。プロパティは、クラスのインスタンスが保持するデータ項目で、As句でそのデータ型を宣言します。ここでは、
- %String:文字列
- %TimeStamp:日付
- %Integer:整数
- %Float:浮動小数
といった単純型のみを使用していますが、他のクラスのインスタンスを参照するプロパティや、コレクション(配列やリスト)プロパティも定義できます。
インデックス宣言
他のRDBMSなどと同様、IRISではクラスのプロパティにインデックスを張ることができます。Indexキーワードで始まり、インデックス名を指定し、On句でインデックスの対象となるプロパティを宣言します。
コンパイル
Visual Studio Codeの「表示」メニューもしくは左下のアイコン(次図)をクリックして、「コマンド パレット」を呼び出し、そこで”ObjectScript: Import and compile current file”を実行します(次図)。
“Compile succeeded”というメッセージが出たらコンパイル成功です。この操作により、IRISにクラスが定義されました。
IRISでは、クラス定義を行うと同時にテーブルも定義され、SQL文による操作も可能になります。これについては後述します。

