CodeZine(コードジン)

特集ページ一覧

Visual Studio Codeを使ってIRISのクラスを定義してみよう

InterSystems IRISでシンプルに開発するIoTアプリケーション 第4回

  • ブックマーク
  • LINEで送る
  • このエントリーをはてなブックマークに追加

目次

クラスの定義

 それではクラスの定義を行ってみましょう。Visual Studio CodeのワークスペースにDriveDemo/Dataというフォルダを作成し、「新しいファイル」ボタンでCarLatest.clsを新規に作成してください(次図)。

CarLatest.cls作成
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文による操作も可能になります。これについては後述します。


  • ブックマーク
  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

  • 堀田 稔(インターシステムズジャパン)(ホリタ ミノル)

    SEマネージャー。 1992年大阪大学基礎工学部情報工学科卒。同年日本ディジタルイクイップメント(株)入社。電気通信など様々な業界向けプロジェクトにシステムエンジニアとして携わる。1996年InterSystems Data Platform製品の日本語版開発プロジェクトに従事し、同製品の販売・サ...

バックナンバー

連載:InterSystems IRISでシンプルに開発するIoTアプリケーション
All contents copyright © 2005-2020 Shoeisha Co., Ltd. All rights reserved. ver.1.5