intra-mart Accel Platform — IM-LogicDesigner拡張プログラミングガイド 第3版
|
|
|
- ゆいと すわ
- 7 years ago
- Views:
Transcription
1 Copyright 2015 NTT DATA INTRAMART CORPORATION 1 Top
2 目次 1. 改訂情報 2. はじめに 2.1. 本書の目的 2.2. 対象読者 2.3. 対象開発モデル 2.4. サンプルコードについて 2.5. 本書の構成 3. 拡張パッケージ 3.1. パッケージ指定クラスの作成 3.2. パッケージ指定クラスの登録 4. フロー要素 4.1. カテゴリの作成 4.2. フロー要素とメタデータの作成 フロー要素の引数 戻り値の作成 フロー要素 メタデータクラスの作成 フロー要素にプロパティを追加する フロー要素に後処理を追加する 5. マッピング関数 5.1. マッピング関数の引数と戻り値 5.2. マッピング関数カテゴリの作成 5.3. マッピング関数の作成 6. EL 関数 6.1. EL 関数の追加 7. データ変換 7.1. データ変換処理の作成 8. フロートリガ 8.1. カテゴリの作成 8.2. 受信するデータを格納するためのクラスの作成 8.3. データ変換クラスの作成 8.4. データ処理クラスの作成 8.5. マッピング設定の作成 9. 付録 9.1. 独自のビジネスロジックからロジックフローを呼び出す方法 Java 開発モデル スクリプト開発モデル 2
3 改訂情報 変更年月日 変更内容 初版 第 2 版下記を変更しましたフロー要素作成におけるコードに含まれるコンストラクタの修飾子をprotectedからpublicに修正フロー要素にプロパティを追加するコード例に不足していたimport 文を追加 フロートリガ を追加 第 3 版下記を変更しました マッピング関数の作成 に getdescriptionmessagekey メソッド の説明を追加 3
4 はじめに 本書の目的 本書では IM-LogicDesigner におけるそれぞれの機能を拡張する仕組の詳細について説明します 説明範囲は以下のとおりです フロー要素マッピング Expression Language 対象読者 本書では次の利用者を対象としています intra-mart Accel Platform を理解している 対象開発モデル 本書では以下の開発モデルを対象としています JavaEE 開発モデル サンプルコードについて 本書に掲載されているサンプルコードは可読性を重視しており 性能面や保守性といった観点において 必ずしも適切な実装ではありません 開発においてサンプルコードを参考にされる場合には 上記について十分に注意してください 本書の構成 拡張パッケージ IM-LogicDesigner 機能を拡張するには 必ず拡張機能を含んだパッケージを指定する必要があります 指定されたパッケージ配下に存在する全ての拡張機能は intra-mart Accel Platform 起動時に自動的に検出され読み込まれます その為 本書に掲載されている全ての拡張機能を実装する際には必ずこのパッケージ指定を行う必要があります フロー要素 4
5 IM-LogicDesigner で利用するフロー要素以外の独自のフロー要素 カテゴリを追加したい開発者向けです この追加を行うことで IM-LogicDesigner 上に様々な独自処理を追加することができるようになります マッピング関数ロジックフローにおける データの受け渡しを行うマッピング機能に 独自の関数を追加したい開発者向けです この追加を行うことで マッピング時に 任意の処理関数を追加することができるようになります EL 関数 IM-LogicDesigner では Expression Languageにより 分岐条件 繰り返し条件を指定する事が可能です このExpression Languageに対し 独自の関数を追加する方法を解説します データ変換マッピング時に それぞれデータ型の違う値をマッピングした場合には データ型の変換が行われます このデータ型の変換処理を独自に追加したい開発者向けです 5
6 拡張パッケージ 本章では IM-LogicDesigner における全ての拡張機能を実装する為に必要なパッケージ指定方法を解説します 指定されたパッケージは そのパッケージ配下のサブパッケージを含めて拡張機能を検索します 検索対象となるパッケージの範囲が広い場合には 起動時の解析に時間がかかる可能性があります 指定するパッケージは最小限の範囲を指定してください パッケージ指定クラスの作成 パッケージ指定クラスの登録 パッケージ指定クラスの作成 パッケージの指定を行うには パッケージを提供するためのクラスを実装する必要があります パッケージ指定を行うクラスは 必ず jp.co.intra_mart.system.logic.factory.elementscanpackagefactory インタフェースを実装する必要があります 本書では 拡張パッケージとして org.example.logicdesigner パッケージを指定します 以降の章で解説するすべての機能は org.example.logicdesigner パッケージ配下に作成します パッケージを指定するためのMyPackageFactoryクラスを作成します package org.example.logicdesigner; import java.util.arrays; import java.util.collection; import jp.co.intra_mart.system.logic.factory.elementscanpackagefactory; public class MyPackageFactory implements ElementScanPackageFactory { public Collection<String> gettargetpackages() { return Arrays.asList("org.example.logicdesigner"); パッケージ指定クラスの登録 作成したMyPackageFactoryクラスは ServiceLoaderクラスを利用して読み込まれるサービスプロバイダとして扱います その為 ServiceLoaderとして読み込みを行う為のプロバイダ構成ファイルを配置します プロバイダ構成ファイルはクラスパス上の /META- INF/services/jp.co.intra_mart.system.logic.factory.ElementScanPackageFactory ファイルとなります 6
7 intra-mart e Builder for Accel Platform を利用する場合には プロジェクト配下より src/main/resources/meta-inf/services ディレクトリを作成した後 jp.co.intra_mart.system.logic.factory.elementscanpackagefactory ファイルを作成してください プロバイダ構成ファイルには 作成したパッケージ指定クラスのFQDNを指定します org.example.logicdesigner.mypackagefactory 7
8 フロー要素 本章では フロー実行時に呼び出されるフロー要素の作成方法を解説します フロー要素を追加するには 以下のクラスを作成する必要があります カテゴリフロー要素メタデータ カテゴリは一度作成を行ったら 再利用することが可能です カテゴリの作成 フロー要素とメタデータの作成 カテゴリの作成 はじめに フロー要素が所属するカテゴリの作成を行います カテゴリは ロジックフローのデザイナ画面左部に表示されるパレットで利用されます カテゴリは全てJavaクラスで作成する必要があります カテゴリは jp.co.intra_mart.foundation.logic.element.category.elementcategory インタフェースを実装したカテゴリクラスを作成してください package org.example.logicdesigner.element; import jp.co.intra_mart.foundation.logic.element.category.elementcategory; public class MyCategory implements ElementCategory { public String getcategoryid() { return "my_category"; public String getdisplayname() { return " サンプルカテゴリ "; public int getsortnumber() { return 100; getcategoryid には カテゴリの ID となる文字列を返却するよう実装します getcategoryid には im_ で始まる文字列は利用できません 8
9 getdisplayname は 画面上に表示されるカテゴリ名を返却するよう実装します 多言語化を行う場合には MessageManager API 等を利用して利用者のロケールに沿ったカテゴリ名を返却するよう実装を行う必要があります getsortnumber は カテゴリを表示する際に利用するソート順となります getsortnumberの値が小さい数ほど先頭に表示されるようになります 標準機能のソート番号は 1 以降の連番を利用しています フロー要素とメタデータの作成 フロー要素の引数 戻り値の作成 フロー要素は ロジックフロー実行時に指定のメソッドが呼び出されます 指定のメソッドには任意の引数 戻り値を用意することが可能です 引数 戻り値に利用可能なデータ型は以下の通りです プリミティブ型 java.lang.string java.lang.boolean java.lang.byte java.lang.character java.lang.short java.lang.integer java.lang.long java.lang.float java.lang.double java.math.bigdecimal java.math.biginteger java.util.calendar java.util.date java.util.locale java.util.timezone jp.co.intra_mart.foundation.i18n.datetime.datetime jp.co.intra_mart.foundation.i18n.datetime.duration java.sql.date java.sql.timestamp jp.co.intra_mart.foundation.logic.data.basic.bytearraybinary jp.co.intra_mart.foundation.logic.data.basic.inputstreambinary jp.co.intra_mart.foundation.service.client.file.publicstorage 9
10 jp.co.intra_mart.foundation.service.client.file.sessionscopestorage java.util.mapを実装するクラス java.util.hashmap 等 java.lang.object 上記のデータ型を内包する java.util.collection インタフェース または java.util.list インタフェースの実装クラス (ArrayList, LinkedList 等 ) を利用することが可能です Collection アノテーションを付与し Collection アノテーションは 読み取り用メソッドに付与してください ここでは 引数 戻り値となるクラスを作成します 作成するクラスが持つプロパティを利用するには 対象のプロパティに対するgetter および setterを持つ必要があります 実装するgetter および setterはjavabeansの規約に沿って実装を行ってください 10
11 package org.example.logicdesigner.element; import java.util.collection; import jp.co.intra_mart.foundation.logic.annotation.typehint; public class MyParameter { private String stringparameter; private boolean booleanparameter; private String[] stringarrayparameter; private Collection<Integer> integerlistparameter; public String getstringparameter() { return stringparameter; public void setstringparameter(string stringparameter) { this.stringparameter = stringparameter; public boolean isbooleanparameter() { return booleanparameter; public void setbooleanparameter(boolean booleanparameter) { this.booleanparameter = booleanparameter; public String[] getstringarrayparameter() { return stringarrayparameter; public void setstringarrayparameter(string[] stringarrayparameter) { this.stringarrayparameter = public Collection<Integer> getintegerlistparameter() { return integerlistparameter; public void setintegerlistparameter(collection<integer> integerlistparameter) { this.integerlistparameter = integerlistparameter; 11
12 package org.example.logicdesigner.element; public class MyResult { private String message; public String getmessage() { return message; public void setmessage(string message) { this.message = message; フロー要素 メタデータクラスの作成 次に メインのクラスとなるフロー要素クラスを実装していきます フロー要素を作成する前に フロー要素に対応したメタデータクラスを作成します メタデータクラスは jp.co.intra_mart.foundation.logic.element.metadata.flowelementmetadata クラスを継承して作成してください package org.example.logicdesigner.element; import jp.co.intra_mart.foundation.logic.element.metadata.flowelementmetadata; public class MyTaskMetadata extends FlowElementMetadata { public MyTaskMetadata() { super(null); public String getelementname() { return " サンプルタスク "; getelementname メソッドは パレット上に表示される名前となります 多言語化を行う場合には MessageManager API 等を利用して利用者のロケールに沿った要素名を返却するよう実装を行う必要があります コンストラクタ内で呼び出しを行っている super(null) 部分は暫定的に記述しています この部分はフロー要素クラスを作成後に変更を行います メタデータクラスを作成したら フロー要素クラスを作成します フロー要素は jp.co.intra_mart.foundation.logic.element.task クラスを継承して作成してください 12
13 Taskクラスには 3つの型パラメータを指定します メタデータクラス Taskに受け渡される引数の型 Taskが返却する戻り値の型を指定してください ここでは前項で作成したパラメータ用の型と返却用の型を指定します また フロー要素には jp.co.intra_mart.foundation.logic.annotation.logicflowelement アノテーションを付与する必要があります LogicFlowElementアノテーションが付与されたクラスは起動時に自動的に読み込まれます package org.example.logicdesigner.element; import jp.co.intra_mart.foundation.logic.element.elementcontext; import jp.co.intra_mart.foundation.logic.element.task; import category=mycategory.class, index=100) public class MyTask extends Task<MyTaskMetadata, MyParameter, MyResult> { public MyTask(ElementContext context) { super(context); public MyResult execute(myparameter parameter) throws FlowExecutionException { System.out.println(parameter.getStringParameter()); MyResult result = new MyResult(); result.setmessage("hello world."); return result; executeメソッドがフロー要素実行時に呼び出されるメソッドとなります 任意の処理を記述してください LogicFlowElementアノテーションには そのフロー要素のID(id) 所属するカテゴリ (category) パレットに表示する際に利用されるソート番号(index) を指定してください im_ で始まるIDを指定することは出来ません 前項で作成したMyCategoryクラスをカテゴリとして指定しています コンストラクタでは ElementContext を引数に受け取ります ElementContext はフロー実行時の情報が格納されています 後述する FlowElementCloser を ElementContext に登録することにより フロー実行後の後処理を行うプログラムを登録することが可能です フロー要素はロジックフロー実行時に都度インスタンスが生成されます 但し 繰り返し等で同一のフロー要素が呼び出される場合にはそのインスタンスは再利用されます 次に メタデータクラスを修正します メタデータクラスのコンストラクタ内で 親クラスのコンストラクタを呼び出している部分に 作成し 13
14 たフロー要素クラスを受け渡します メタデータクラスは フロー要素のメタ情報を扱います フロー要素の入力値 出力値が持つデータ型や 後述するプロパティに関する情報を提供する役割です 親コンストラクタの引数にフロー要素クラスを受け渡すことにより 自動的にフロー要素の入力値 出力値が持つデータ型を解析し メタ情報として内包します 独自に入力値 出力値等のメタ情報を扱いたい場合には FlowElementMetadata の持つ各メソッドをオーバーライドしてください package org.example.logicdesigner.element; import jp.co.intra_mart.foundation.logic.element.metadata.flowelementmetadata; public class MyTaskMetadata extends FlowElementMetadata { public MyTaskMetadata() { super(mytask.class); public String getelementname() { return " サンプルタスク "; 引数 戻り値 メタデータ フロー要素の作成を行いました 作成したクラスを intra-mart Accel Platform 上に配置することにより 作成したフロー要素が認識さ れ利用できるようになります フロー要素にプロパティを追加する フロー要素の引数 戻り値はロジックフローのマッピングにて利用されますが 引数 戻り値以外に 事前に決められた値を設定しておくためのプロパティ機構が存在します プロパティに利用可能なデータ型は以下の通りです プリミティブ型 java.lang.string java.lang.boolean java.lang.character java.lang.short java.lang.integer java.lang.long java.lang.float java.lang.double java.math.bigdecimal java.math.biginteger 14
15 java.util.date java.sql.date java.sql.timestamp java.lang.enum プロパティを追加するには フロー要素クラスにプロパティとして利用するフィールド および getter setter を追加します 今回は 前項で作成した MyTask に customproperty という名のプロパティを追加します package org.example.logicdesigner.element; import jp.co.intra_mart.foundation.logic.element.elementcontext; import jp.co.intra_mart.foundation.logic.element.task; import category=mycategory.class, index=100) public class MyTask extends Task<MyTaskMetadata, MyParameter, MyResult> { private String customproperty; public MyTask(ElementContext context) { super(context); public String getcustomproperty() { return customproperty; public void setcustomproperty(string customproperty) { this.customproperty = customproperty; public MyResult execute(myparameter parameter) throws FlowExecutionException { System.out.println(parameter.getStringParameter()); MyResult result = new MyResult(); result.setmessage("hello world."); return result; プロパティを追加したら そのままデザイナの設定画面から値の設定を行うことが可能となります デザイナの設定画面では customproperty として項目名が表示されますが メタデータクラスを 変更することにより任意の表示名に変更することが可能です 15
16 package org.example.logicdesigner.element; import jp.co.intra_mart.foundation.logic.element.metadata.flowelementmetadata; import jp.co.intra_mart.foundation.logic.element.metadata.elementproperty; public class MyTaskMetadata extends FlowElementMetadata { public MyTaskMetadata() { super(mytask.class); public String getelementname() { return " サンプルタスク "; protected ElementProperty decorateelementproperty(elementproperty elementproperty) { if("customproperty".equals(elementproperty.getpropertyname())) { elementproperty.setdefaultvalue("hello world."); elementproperty.setlabelkey("mytask.customproperty.label.key"); return elementproperty; decorateelementproperty メソッドをオーバーライドし プロパティ項目のカスタマイズが可能です setdefaultvalue により デフォルト値の指定を行っています setlabelkey にはプロパティの表示名にあたる多言語化リソースのキーを指定します settype メソッドを利用することにより画面上変更することが可能です プロパティに boolean 型を指定し flag タイプを指定することによりチェックボックスとして扱えます フロー要素に後処理を追加する ロジックフロー実行後に 任意の処理を呼び出すことが可能です これは フロー要素内で使用したリソースの開放等を行う際に利用します 後処理は jp.co.intra_mart.foundation.logic.element.flowelementcloser インタフェースを実装する必要があります 本項では 作成した MyTask クラスに直接 FlowElementCloser インタフェースを実装しています フロー要素のコンストラクタに受け渡される ElementContext に対し addflowelementcloser メソッドで FlowElementCloser を登録します 16
17 package org.example.logicdesigner.element; import jp.co.intra_mart.foundation.logic.annotation.logicflowelement; import jp.co.intra_mart.foundation.logic.element.elementcontext; import jp.co.intra_mart.foundation.logic.element.flowelementcloser; import jp.co.intra_mart.foundation.logic.element.task; import = "my_task", category = MyCategory.class, index = 100) public class MyTask extends Task<MyTaskMetadata, MyParameter, MyResult> implements FlowElementCloser { private String customproperty; public MyTask(ElementContext context) { super(context); context.addflowelementcloser(this); public MyResult execute(myparameter parameter) throws FlowExecutionException { System.out.println(parameter.getStringParameter()); MyResult result = new MyResult(); result.setmessage("hello world."); return result; public void close() { System.out.println("closed."); public String getcustomproperty() { return customproperty; public void setcustomproperty(string customproperty) { this.customproperty = customproperty; コンストラクタ内で addflowelementcloser メソッドを呼び出し自身のインスタンスを FlowElementCloser として登録しています FlowElementCloser インタフェースの持つ close メソッドを実装しています 17
18 マッピング関数 本章では IM-LogicDesigner の持つマッピング機能で利用可能なマッピング関数の定義方法について 解説します マッピング関数の引数と戻り値 マッピング関数カテゴリの作成 マッピング関数の作成 マッピング関数の引数と戻り値 マッピング関数で利用可能な引数と戻り値は以下の通りです プリミティブ型 java.lang.string java.lang.boolean java.lang.byte java.lang.character java.lang.short java.lang.integer java.lang.long java.lang.float java.lang.double java.math.bigdecimal java.math.biginteger java.util.calendar java.util.date java.util.locale java.util.timezone jp.co.intra_mart.foundation.i18n.datetime.datetime jp.co.intra_mart.foundation.i18n.datetime.duration java.sql.date java.sql.timestamp jp.co.intra_mart.foundation.logic.data.basic.bytearraybinary jp.co.intra_mart.foundation.logic.data.basic.inputstreambinary jp.co.intra_mart.foundation.service.client.file.publicstorage jp.co.intra_mart.foundation.service.client.file.sessionscopestorage 18
19 java.util.mapを実装するクラス java.util.hashmap 等上記のデータ型を内包する java.util.collection インタフェースまたは java.util.list インタフェースの実装クラス (ArrayList, LinkedList 等 ) を利用することが可能です マッピング関数の引数 戻り値と関連付けられているデータ型が一致していない場合には自動的にデータ型の変換が行われた後 マッピング関数が呼びだされます マッピング関数の引数 戻り値が配列 / リスト形式であり 関連付けられているデータ型が配列 / リスト形式でない場合には自動的に変換が行われます 変換の詳細に関しては IM-LogicDesigner 仕様書 マッピングの章を参照してください マッピング関数カテゴリの作成 マッピング関数には その関数の所属するカテゴリが存在します カテゴリを作成するには jp.co.intra_mart.foundation.logic.data.mapping.function.mappingfunctioncategory インタフェースを実装したカテゴリクラスを作成する必要があります package org.example.logicdesigner.data; import jp.co.intra_mart.foundation.logic.data.mapping.function.mappingfunctioncategory; public class MyFunctionCategory implements MappingFunctionCategory { public String getcategoryid() { return "my_func_category"; public String getdisplayname() { return " サンプルカテゴリ "; public int getsortnumber() { return 100; getcategoryid では 一意となるカテゴリIDを返却するよう実装してください getcategoryidには im_ で始まるIDは利用できません getdisplayname は 画面上に表示されるカテゴリ名として利用されます 多言語化を行う場合には MessageManager API 等を利用して利用者のロケールに沿ったカテゴリ名を返却するよう実装を行う必要があります getsortnumber は 画面上に表示する際に利用されるソート番号です 標準で提供されるカ 19
20 テゴリは10, 20, と連番で指定が行われています マッピング関数の作成 マッピング関数を作成するには jp.co.intra_mart.foundation.logic.data.mapping.function インタフェースを実装する必要があります 実装を容易にするための jp.co.intra_mart.system.logic.data.mapping.function.abstractfunction クラスが用意されています マッピング関数として起動時に検出対象となるよう jp.co.intra_mart.foundation.logic.annotation.mappingfunction アノテーションをクラスに指定してください 作成したマッピング関数は アノテーションを付与することにより起動時に自動的に検出 登録が行われます その為設定ファイルは不要です マッピング関数は フロー定義に含まれるマッピング毎にインスタンスが作成されます マッピング関数はスレッドセーフとなるよう実装する必要があります 20
21 package org.example.logicdesigner.data; import java.math.bigdecimal; import jp.co.intra_mart.foundation.logic.annotation.mappingfunction; import jp.co.intra_mart.foundation.logic.data.mapping.mappingcontext; import jp.co.intra_mart.foundation.logic.exception.functioninvocationexception; import jp.co.intra_mart.system.logic.data.mapping.standardargumenttype; import jp.co.intra_mart.system.logic.data.mapping.standardreturntype; import = MyFunctionCategory.class, index = 100) public class MyFunction extends AbstractFunction { private static final long serialversionuid = -1; public String getid() { return "my_tax_function"; public String getname() { return "tax"; public String getdescriptionmessagekey() { return "MESSAGE.ID"; protected void initialize() { addargumenttype(standardargumenttype.bigdecimal); addargumenttype(standardargumenttype.bigdecimal, "scale"); setreturntype(standardreturntype.bigdecimal); public Object execute(mappingcontext context, Object... arguments) throws FunctionInvocationException { BigDecimal argument = (BigDecimal) arguments[0]; return argument.multiply(new アノテーションでは カテゴリと カテゴリ内で利用されるソート番号を指定しています getid には 一意となるマッピング関数のIDを返却するよう実装してください getidには im_ で始まるIDは利用できません getname では 画面上に表示する際に利用されるマッピング関数名を返却するよう実装しま 21
22 す 関数名は全て英数字を指定してください getdescriptionmessagekey では マッピング関数を画面上に配置した際に表示する説明を示すメッセージキーを返却するよう実装します 実装は任意です initialize は マッピング関数初期化時に呼び出されます ここでは 引数および戻り値のデータ型を指定してください execute は実際にマッピング関数が呼び出された際に実行されます execute に渡される引数 MappingContext には フロー実行中の変数等が格納されています 22
23 EL 関数 IM-LogicDesigner では 分岐条件 繰り返し条件等で Expression Language(EL) を利用します 本章では EL 内で独自の関数を利用できるよう EL 関数の追加を行う方法を解説します EL 関数の追加 EL 関数の追加 EL 関数を追加するには public static 修飾子を持つメソッドを実装する必要があります また 起動時に自動的に検出を行う為に jp.co.intra_mart.foundation.logic.annotation.provideelfunction アノテーションをクラスに付与します EL 関数として追加するメソッドには jp.co.intra_mart.foundation.logic.annotation.elfunction アノテーションを付与してください EL 関数名は対象となるメソッドのメソッド名です 23
24 package org.example.logicdesigner.el; import java.io.unsupportedencodingexception; import java.net.urldecoder; import java.net.urlencoder; import java.nio.charset.standardcharsets; import jp.co.intra_mart.foundation.logic.annotation.elfunction; import public class MyELFunction = "my") public static String encodeuricomponent(string value) { try { return URLEncoder.encode(value, StandardCharsets.UTF_8.name()); catch (UnsupportedEncodingException ignore) { return = "my") public static String decodeuricomponent(string value) { try { return URLDecoder.decode(value, StandardCharsets.UTF_8.name()); catch (UnsupportedEncodingException ignore) { return アノテーションには EL 関数のプレフィックスが指定可能です この例では ${my:encodeuricomponent('<br />') のように呼び出すことが可能です 一つのクラスに複数の EL 関数を定義することが可能です 24
25 データ変換 本章では マッピングの際に利用されるデータ変換処理を追加する方法に関して解説します 標準機能としてデータ変換機能が提供されています この機能は標準のデータ変換の仕組みを差し替え るという目的ではなく 複雑な型の変換を行う際のマッピングを簡易化する目的で用意されています データ変換処理の作成 データ変換処理の作成 データ変換処理を作成するには jp.co.intra_mart.foundation.logic.data.converter.converter インタフェースを実装します また 起動時にデータ変換処理を検出 登録するため作成したクラスに対して jp.co.intra_mart.foundation.logic.annotation.dataconverter アノテーションを付与してください データ変換処理では 配列 / リスト形式の値は受け渡されません 事前に配列 / リスト形式に含まれる値を抽出し受け渡しが行われます 25
26 package org.example.logicdesigner.data; import jp.co.intra_mart.foundation.logic.annotation.dataconverter; import jp.co.intra_mart.foundation.logic.data.typedefinition; import jp.co.intra_mart.foundation.logic.data.converter.converter; import jp.co.intra_mart.foundation.logic.exception.typeconvertionexception; import org.example.logicdesigner.element.myparameter; import public class MyConverter implements Converter public <T> T convert(object value, TypeDefinition<?> sourcetypedefinition, TypeDefinition<?> targettypedefinition) throws TypeConvertionException { MyParameter myparameter = (MyParameter) value; MyResult result = new MyResult(); result.setmessage(myparameter.getstringparameter()); return (T) result; public boolean issupporttype(typedefinition<?> sourcetypedefinition, TypeDefinition<?> targettypedefinition) { return MyParameter.class.equals(sourceTypeDefinition.getType()) && MyResult.class.equals(targetTypeDefinition.getType()); issupporttype メソッドにて 変換対象となるデータ型であるか判定を行うよう実装しま す convert メソッドにて データ変換処理を実装します 26
27 フロートリガ 本章では IM-Propagation を利用したフローを実行するトリガを追加する方法を解説します IM-Propagation の詳細は IM-Propagation 仕様書 を参照してください トリガを追加するには 以下のクラスを作成する必要があります カテゴリ受信するデータを格納するためのクラスデータ変換クラス (Decoder) データ処理クラス (Procedure) マッピング設定カテゴリは一度作成を行ったら 再利用することが可能です 注意ここでは IM-Propagationプログラミングガイド - データを送る側の実装 を用いて送られてきたデータを受信した際にフローを実行するトリガを例に説明を行います データの送信側の実装が存在しない場合 トリガ設定を行ってもフローは実行されません カテゴリの作成受信するデータを格納するためのクラスの作成データ変換クラスの作成データ処理クラスの作成マッピング設定の作成 カテゴリの作成 はじめに トリガが所属するカテゴリの作成を行います カテゴリは全てJavaクラスで作成する必要があります カテゴリは jp.co.intra_mart.foundation.logic.trigger.category.triggereventcategory インタフェースを実装したカテゴリクラスを作成してください 27
28 package org.example.logicdesigner.trigger; import jp.co.intra_mart.foundation.logic.trigger.category.triggereventcategory public class MyTriggerCategory implements TriggerEventCategory { public String getcategoryid() { return "my_trigger_category"; public String getdisplayname() { return " サンプルカテゴリ "; public int getsortnumber() { return 100; getcategoryid には カテゴリのIDとなる文字列を返却するよう実装します getcategoryidには im_ で始まる文字列は利用できません getdisplayname は 画面上に表示されるカテゴリ名を返却するよう実装します 多言語化を行う場合には MessageManager API 等を利用して利用者のロケールに沿ったカテゴリ名を返却するよう実装を行う必要があります getsortnumber は カテゴリを表示する際に利用するソート順です getsortnumberの値が小さい数ほど先頭に表示されます 受信するデータを格納するためのクラスの作成 受信するデータを格納するためのクラス ( 以下 独自モデル ) を用意します 独自モデルについては IM-Propagation プログラミングガイド - 受信するデータを格納するた めのクラスを作成する を参照してください 28
29 package org.example.logicdesigner.trigger; public class MyTriggerData { private String resourceid; private String url; public String getresourceid() { return resorceid; public String geturl() { return url; public void setresourceid(string resourceid) { this.resourceid = resorceid; public void seturl(string url) { this.url = url; 独自モデルのプロパティに利用可能なデータ型は以下の通りです プリミティブ型 java.lang.string java.lang.boolean java.lang.byte java.lang.character java.lang.short java.lang.integer java.lang.long java.lang.float java.lang.double java.math.bigdecimal java.math.biginteger java.util.calendar java.util.date java.util.locale java.util.timezone 29
30 jp.co.intra_mart.foundation.i18n.datetime.datetime jp.co.intra_mart.foundation.i18n.datetime.duration java.sql.date java.sql.timestamp jp.co.intra_mart.foundation.logic.data.basic.bytearraybinary jp.co.intra_mart.foundation.logic.data.basic.inputstreambinary jp.co.intra_mart.foundation.service.client.file.publicstorage jp.co.intra_mart.foundation.service.client.file.sessionscopestorage java.util.mapを実装するクラス java.util.hashmap 等 java.lang.object 上記のデータ型を内包する java.util.collection インタフェース または java.util.list インタフェースの実装クラス (ArrayList, LinkedList 等 ) を利用することが可能です Collection Listを利用した場合には アノテーションを付与し Collection public List<String> getlistdata() { return listdata; データ変換クラスの作成 次に 送受信モデル (Generic) を 独自モデル に変換する機能を提供するクラス( 以下 データ変換クラス ) を用意します データ変換クラスについて 詳しくは IM-Propagationプログラミングガイド - 受信側のデータ変換クラス (Decoder) を作成する を参照してください 30
31 package org.example.logicdesigner.trigger; import jp.co.intra_mart.foundation.propagation.exception.convertexception; import jp.co.intra_mart.foundation.propagation.receiver.abstractdecoder; public class MyTriggerDecoder extends AbstractDecoder<SampleGenericData, MyTriggerData> { { public MyTriggerData decode(final SampleGenericData generic) throws ConvertException MyTriggerData data = new MyTriggerData(); data.setresourceid(generic.getresourceid()); data.seturl(generic.geturl()); return data; public Class<SampleGenericData> getgenericdataclass() { return SampleGenericData.class; データ処理クラスの作成 次に メインのクラスとなるデータ処理クラスを実装していきます データ処理クラスは jp.co.intra_mart.system.logic.trigger.propagation.logicflowpropagationtrigger クラスを継承して作成してください また データ処理クラスには jp.co.intra_mart.foundation.logic.annotation.triggerevent アノテーションを付与する必要があります TriggerEventアノテーションが付与されたクラスは起動時にフローを実行するトリガとして読み込まれます package org.example.logicdesigner.trigger; import jp.co.intra_mart.foundation.logic.annotation.triggerevent; import category=mytriggercategory.class, index=1) public class MyTrigger extends LogicFlowPropagationTrigger<MyTriggerData> { TriggerEvent アノテーションには そのトリガのID(eventId) 所属するカテゴリ (category) 設定画面に表示する際に利用されるソート番号(index) を指定してください 継承した LogicFlowPropagationTrigger クラスで受信データのマッピングおよびトリガ設定で設定されたフローの実行が行われますので データ処理クラスでフロー実行の処理を実装する必 31
32 要はありません マッピング設定の作成 次に ここまで作成した データ変換クラス データ処理クラス を紐付けるためのマッピング設定を作成します 詳しくは IM-Propagationプログラミングガイド - マッピング設定を作成する を参照してください <?xml version="1.0" encoding="utf-8"?> <propagation-receivers-config xmlns=" xmlns:xsi=" xsi:schemalocation=" propagationreceivers-config.xsd"> <receiver source="jp.co.intra_mart.module_name.function_name.propagation.sendermoduledata" operationtype="data_created"> <decoder class="org.example.logicdesigner.trigger.mytriggerdecoder"/> <procedure class="org.example.logicdesigner.trigger.mytrigger"/> </receiver> </propagation-receivers-config> 32
33 付録 独自のビジネスロジックからロジックフローを呼び出す方法 Java 開発モデル Java 開発モデルを利用してロジックフローを呼び出すコード例です 33
34 package org.example.logicdesigner; import java.util.hashmap; import java.util.map; import jp.co.intra_mart.foundation.logic.logicruntime; import jp.co.intra_mart.foundation.logic.logicserviceprovider; import jp.co.intra_mart.foundation.logic.logicsession; import jp.co.intra_mart.foundation.logic.exception.errorendeventexception; import jp.co.intra_mart.foundation.logic.exception.logicserviceexception; import jp.co.intra_mart.foundation.logic.exception.logicserviceruntimeexception; public class CallExample { public void call() { // IM-LogicDesignerで利用するサービス群を管理するインスタンスを取得します LogicServiceProvider logicserviceprovider = LogicServiceProvider.getInstance(); // ロジックフロー実行用ランタイムを取得します LogicRuntime runtime = logicserviceprovider.getlogicruntime(); try { // ロジックフロー実行用セッションを取得します LogicSession session = runtime.createsession("my-flow"); // フローに受け渡すパラメータを作成します Map<String, Object> input = new HashMap<>(); // ロジックフローを実行します Map<String, Object> output = (Map<String, Object>) session.execute(input); // 実行結果の確認 System.out.println(output); catch (LogicServiceRuntimeException e) { // リカバリ不能な例外の場合にはLogicServiceRuntimeExceptionが通知されます e.printstacktrace(); catch (ErrorEndEventException e) { // 明示的にエラー終了による終了を行った場合にはErrorEndEventExceptionが通知されます e.printstacktrace(); catch (LogicServiceException e) { // ロジックフロー実行時に何らかの例外が発生した場合にはLogicServiceExceptionが通知されます e.printstacktrace(); スクリプト開発モデル スクリプト開発モデルを利用してロジックフローを呼び出すコード例です 34
35 function call() { // ロジックフローに受け渡すパラメータを作成します var input = {; // ロジックフローを呼び出します var result = LogicFlowExecutor.execute('my-flow', input); if (result.error) { // 何らかのエラーが発生しました Debug.console(result); var output = result.data; Debug.console(output); 35
36 36
intra-mart Accel Platform — IM-LogicDesigner拡張プログラミングガイド 初版
Copyright 2015 NTT DATA INTRAMART CORPORATION 1 Top 目次 1. 改訂情報 2. はじめに 2.1. 本書の目的 2.2. 対象読者 2.3. 対象開発モデル 2.4. サンプルコードについて 2.5. 本書の構成 3. 拡張パッケージ 3.1. パッケージ指定クラスの作成 3.2. パッケージ指定クラスの登録 4. フロー要素 4.1. カテゴリの作成
— intra-mart Accel Platform IM-LogicDesigner拡張プログラミングガイド 初版 None
クイック検索検索 目次 Copyright 2015 NTT DATA INTRAMART CORPORATION 1 Top 目次 1. 改訂情報 2. はじめに 2.1. 本書の目的 2.2. 対象読者 2.3. 対象開発モデル 2.4. サンプルコードについて 2.5. 本書の構成 3. 拡張パッケージ 3.1. パッケージ指定クラスの作成 3.2. パッケージ指定クラスの登録 4. フロー要素
intra-mart Accel Platform — IM-Repository拡張プログラミングガイド 初版
Copyright 2018 NTT DATA INTRAMART CORPORATION 1 Top 目次 1. 改訂情報 2. はじめに 2.1. 本書の目的 2.2. 対象読者 2.3. サンプルコードについて 2.4. 本書の構成 3. 辞書項目 API 3.1. 最新バージョン 3.1.1. 最新バージョンの辞書を取得する 3.2. 辞書項目 3.2.1. 辞書項目を取得する 3.2.2.
intra-mart Accel Platform — IM-BloomMaker プログラミングガイド 初版
Copyright 2019 NTT DATA INTRAMART CORPORATION 1 Top 目次 1. 改訂情報 2. はじめに 2.1. 本書の目的 2.2. 対象読者 2.3. サンプルコードについて 2.4. 本書の構成 3. 前処理プログラム 3.1. 前処理を実装する 3.1.1. 前処理の実装方式 3.1.2. 前処理の実行順序と引数 3.1.3. リクエストパラメータの解析
intra-mart Accel Platform — イベントナビゲータ 開発ガイド 初版
Copyright 2013 NTT DATA INTRAMART CORPORATION 1 Top 目次 intra-mart Accel Platform イベントナビゲータ開発ガイド初版 2013-07-01 改訂情報概要イベントフローの作成 更新 削除をハンドリングするイベントフローを非表示にする回答を非表示にするリンクを非表示にするタイトル コメントを動的に変更するリンク情報を動的に変更するナビゲート結果のリンクにステータスを表示する
intra-mart Accel Platform — イベントナビゲータ 開発ガイド 初版 None
クイック検索検索 目次 Copyright 2013 NTT DATA INTRAMART CORPORATION 1 Top 目次 intra-mart Accel Platform イベントナビゲータ開発ガイド初版 2013-07-01 None 改訂情報概要イベントフローの作成 更新 削除をハンドリングするイベントフローを非表示にする回答を非表示にするリンクを非表示にするタイトル コメントを動的に変更するリンク情報を動的に変更するナビゲート結果のリンクにステータスを表示する
intra-mart Accel Platform — アクセスコンテキスト 拡張プログラミングガイド 第2版
Copyright 2014 NTT DATA INTRAMART CORPORATION 1 Top 目次 1. 改訂情報 2. はじめに 2.1. 本書の目的 2.2. 対象読者 2.3. 対象開発モデル 2.4. サンプルコードについて 2.5. 本書の構成 3. アクセスコンテキストの実装 3.1. アクセスコンテキストの実装例 3.2. アクセスコンテキストのキャッシュ機能の実装例 3.3.
intra-mart Accel Platform
目次目次 Copyright 2014 NTT DATA INTRAMART CORPORATION クイック検索検索 1 Top 目次 1. 改訂情報 2. はじめに 2.1. 本書の目的 2.2. 対象読者 2.3. 対象開発モデル 2.4. サンプルコードについて 2.5. 本書の構成 3. アクセスコンテキストの実装 3.1. アクセスコンテキストの実装例 3.2. アクセスコンテキストのキャッシュ機能の実装例
intra-mart Accel Platform — 外部ソフトウェア接続モジュール 仕様書 第3版
Copyright 2012 NTT DATA INTRAMART CORPORATION 1 Top 目次 改訂情報はじめに本書の目的対象読者本書の構成概要外部ソフトウェア接続モジュールとは仕様外部ソフトウェア接続モジュールの構成サンプルプログラムサンプル内容動作に必要な環境構築プログラムソースログイン セキュリティ環境の構築外部ソフトウェア連携時の認可設定 2 改訂情報 変更年月日 変更内容 2012-12-21
intra-mart Accel Platform — IM-共通マスタ スマートフォン拡張プログラミングガイド 初版
Copyright 2012 NTT DATA INTRAMART CORPORATION 1 Top 目次 1. 改訂情報 2. IM- 共通マスタの拡張について 2.1. 前提となる知識 2.1.1. Plugin Manager 2.2. 表記について 3. 汎用検索画面の拡張 3.1. 動作の概要 3.1.1. 汎用検索画面タブの動作概要 3.2. 実装の詳細 3.2.1. 汎用検索画面タブの実装
intra-mart Accel Collaboration — アンケート 管理者操作ガイド 第2版
Copyright 2016 NTT DATA INTRAMART CORPORATION 1 Top 目次 intra-mart Accel Collaboration アンケート管理者操作ガイド第 2 版 2017-04-01 1. 改訂情報 2. アンケートについて 3. 基本編 3.1. アンケートの認可を設定する 3.2. アンケートを複数の言語で利用する 3.3. 回答共有の利用レベルについて
intra-mart Accel Platform — Slack連携モジュール 利用ガイド 初版
Copyright 2018 NTT DATA INTRAMART CORPORATION 1 Top 目次 intra-mart Accel Platform Slack 連携モジュール利用ガイド初版 2018-12-01 1. 改訂情報 2. はじめに 3. システム要件 3.1. intra-mart Accel Platform 3.2. 検証済み環境 3.2.1. サーバ環境 3.2.2.
intra-mart Accel Platform — 招待機能プログラミングガイド 初版
Copyright 2016 NTT DATA INTRAMART CORPORATION 1 Top 目次 1. 改訂情報 2. はじめに 3. 権限リストを拡張する 2 改訂情報 変更年月日 変更内容 2016-04-01 初版 3 はじめに 項目 このガイドについて このガイドについて このガイドでは 招待機能の拡張方法および注意点について解説します 4 権限リストを拡張する 項目 この機能について実装済みの招待権限デコレータ実装方法設定方法
.NETプログラマー早期育成ドリル ~VB編 付録 文法早見表~
.NET プログラマー早期育成ドリル VB 編 付録文法早見表 本資料は UUM01W:.NET プログラマー早期育成ドリル VB 編コードリーディング もしくは UUM02W:.NET プログラマー早期育成ドリル VB 編コードライティング を ご購入頂いた方にのみ提供される資料です 資料内容の転載はご遠慮下さい VB プログラミング文法早見表 < 基本文法 > 名前空間の定義 Namespace
PowerPoint Presentation
ソフトウェア演習 B GUI を持つ Java プログラムの 設計と実装 4.1 例題 :GUI を持った電卓を作ろう プロジェクトCalculator パッケージ名 :example ソースファイル : Calculator.java GUI.java EventProcessor.java 2 4.2 GUI とイベント処理 GUI の構成 :Swing GUI の場合 フレーム JFrame:
intra-mart Accel Collaboration — ファイルライブラリ 管理者操作ガイド 第6版
Copyright 2012 NTT DATA INTRAMART CORPORATION 1 Top 目次 1. 改訂情報 2. ファイルライブラリについて 3. 基本編 3.1. フォルダとアクセス権を設定する 3.2. ファイルを検索する 3.3. 共有タグを設定する 3.4. ファイル一覧ポートレットを設定する 3.5. メールテンプレートを設定する 2 改訂情報 変更年月日 変更内容 2012-11-01
intra-mart Accel Collaboration — ファイルライブラリ ユーザ操作ガイド 第3版
Copyright 2012 NTT DATA INTRAMART CORPORATION 1 Top 目次 intra-mart Accel Collaboration ファイルライブラリユーザ操作ガイド第 3 版 2015-04-01 1. 改訂情報 2. ファイルライブラリについて 3. 基本編 3.1. ファイルをアップロードする 3.2. ファイル一覧を表示する 3.3. ファイルを検索してダウンロードする
intra-mart Accel Platform — OData 連携チュートリアルガイド 初版
Copyright 2016 NTT DATA INTRAMART CORPORATION 1 Top 目次 intra-mart Accel Platform OData 連携チュートリアルガイド初版 2016-12-01 1. 改訂情報 2. はじめに 2.1. 本書の目的 2.2. 対象読者 2.3. サンプルコードについて 2.4. 本書の構成 3. 概要 3.1. OData 連携とは 3.2.
オブジェクト指向プログラミング・同演習 5月21日演習課題
オブジェクト指向プログラミング 同演習 5 月 21 日演習課題 問題 1 配列の例外処理例外が発生する可能性のある処理を try で囲み その後に catch で例外を捕捉します 例外処理の終了処理として finally が行われます これは書かなくて自動的に行われます 提出課題 1 (Kadai052301.java) 以下のプログラムは例外処理をしていない ArrayIndexOutOfBoundsException
intra-mart Accel Platform
セットアップガイド (WebSphere 編 ) 第 4 版 2014-01-01 1 目次 intra-mart Accel Platform 改訂情報 はじめに 本書の目的 前提条件 対象読者 各種インストール 設定変更 intra-mart Accel Platform 構成ファイルの作成 WebSphereの設定 Java VM 引数の設定 トランザクション タイムアウトの設定 データベース接続の設定
Android Layout SDK プログラミング マニュアル
プログラミングマニュアル Version 1.3.0 用 更新履歴 年月日 バージョン 履歴 2014.09.08 1.2.0.0 新規 (Layout Utilities ユーザーズ ガイド ) 2016.08.16 1.3.0.0 モバイル端末用レイアウトで直線部品と矩形部品に対応 モバイル端末用レイアウトファイルを CLFX から XML へ変更 Layout Print Engine から
— intra-mart Accel Platform セットアップガイド (WebSphere編) 第7版
Copyright 2013 NTT DATA INTRAMART CORPORATION 1 Top 目次 intra-mart Accel Platform セットアップガイド (WebSphere 編 ) 第 7 版 2016-12-01 改訂情報はじめに本書の目的前提条件対象読者各種インストール 設定変更 intra-mart Accel Platform 構成ファイルの作成 WebSphereの設定
プログラミング基礎I(再)
山元進 クラスとは クラスの宣言 オブジェクトの作成 クラスのメンバー フィールド 変数 配列 メソッド メソッドとは メソッドの引数 戻り値 変数の型を拡張したもの 例えば車のデータベース 車のメーカー 車種 登録番号などのデータ データベースの操作 ( 新規データのボタンなど ) プログラムで使う部品の仕様書 そのクラスのオブジェクトを作ると初めて部品になる 継承 などの仕組みにより カスタマイズが安全
intra-mart WebPlatform/AppFramework
intra-mart WebPlatform/AppFramework Ver.7.2 Struts 連携プログラミングガイド 2010/04/01 初版 変更年月日 2010/04/01 初版 > 変更内容 目次 > 1 はじめに...1 1.1 目的...1 2 アプリケーションの作成...2 2.1 Strutsからim-JavaEE Frameworkのイベントフレームワークへの連携...2
WebOTXマニュアル
WebOTX アプリケーション開発ガイド WebOTX アプリケーション開発ガイドバージョン : 7.1 版数 : 初版リリース : 2007 年 7 月 Copyright (C) 1998-2007 NEC Corporation. All rights reserved. 付録 4-2-1 目次 4. プログラミング 開発 (WebOTX)...3 4.2. EJBアプリケーション...3 4.2.1.
Brekeke PBX - Version 2.1 ARSプラグイン開発ガイド
Brekeke PBX Version 2.1 ARS プラグイン開発ガイド Brekeke Software, Inc. バージョン Brekeke PBX v2.1 ARS プラグイン開発ガイド, 2008 年 2 月 著作権本書の著作権は Brekeke Software, Inc. にあります Copyright 2003-2008 Brekeke Software, Inc. 本書の一部または全部を
PowerPoint プレゼンテーション
オブジェクト指向 プログラミング演習 第 4 回継承 オーバーライド ポリモルフィズム 今日のお題 継承 オーバーライド ポリモルフィズム 継承 (inherit) あるクラス c のサブクラス s を定義する : このとき s は c を継承していると言う 何かの下位概念を表すクラスは その上位概念を表すクラスの属性や機能を ( 基本的には ) 使える 継承の例 大学生 長崎県立大学の学生 大学生を継承する概念
intra-mart Accel Collaboration — ファイルライブラリ ユーザ操作ガイド 第5版
Copyright 2012 NTT DATA INTRAMART CORPORATION 1 Top 目次 1. 改訂情報 2. ファイルライブラリについて 3. 基本編 3.1. ファイルをアップロードする 3.2. ファイル一覧を表示する 3.3. ファイルを検索してダウンロードする 3.4. ファイルを削除する 3.5. ファイルライブラリの表示を設定する 3.6. 通知の設定をする 2 改訂情報
JAVA入門
JAVA 入門後期 10 情報処理試験例題解説 H14 年度秋問 8 次の Java プログラムの説明及びプログラムを読んで, 設問に答えよ プログラムの説明 ディジタル論理回路シミュレータを作成するためのクラスとテスト用クラスである (1) ゲートを表す抽象クラス Gate のサブクラスとして, NOT ゲートを表すクラス NotGate 及び AND ゲートを表すクラス AndGate を定義する
intra-mart Accel Platform — OAuth認証モジュール 仕様書 初版
Copyright 2014 NTT DATA INTRAMART CORPORATION 1 Top 目次 intra-mart Accel Platform OAuth 認証モジュール仕様書初版 2014-12-01 改訂情報はじめに本書の目的対象読者本書の構成概要 OAuthとは intra-mart Accel Platform で提供している認証フロー認可コードによる認可インプリシットグラントアクセストークンの更新
た場合クラスを用いて 以下のように書くことが出来る ( 教科書 p.270) プログラム例 2( ソースファイル名 :Chap08/AccountTester.java) // 銀行口座クラスとそれをテストするクラス第 1 版 // 銀行口座クラス class Account String name
クラス ( 教科書第 8 章 p.267~p.297) 前回は処理をまとめる方法として メソッドについて学習した 今回はメソッドとその処理の対象となるデータをまとめるためのクラスについて学習する このクラスはオブジェクト指向プログラミングを実現するための最も重要で基本的な技術であり メソッドより一回り大きなプログラムの部品を構成する 今回はクラスにおけるデータの扱いとクラスの作成方法 使用方法について説明していく
- i - org.t_engine.tenet.core.coreerrormessageexception org.t_engine.tenet.core Class CoreErrorMessageException java.lang.object +-java.lang.throwable +-java.lang.exception +-org.t_engine.tenet.core.coreexception
解答上の注意 1 解答は 解答 紙の問題番号に対応した解答欄にマークしなさい 2 選択肢は 問ごとに 意されています 問 1の選択肢は 問 2で使 しません 3 選択肢は量が多いため 探しやすさの観点よりグループ分けされています グループ分けに合わせて解答欄が区切られていますが 横 1 列で問題 1
解答上の注意 1 解答は 解答 紙の問題番号に対応した解答欄にマークしなさい 2 選択肢は 問ごとに 意されています 問 1の選択肢は 問 2で使 しません 3 選択肢は量が多いため 探しやすさの観点よりグループ分けされています グループ分けに合わせて解答欄が区切られていますが 横 1 列で問題 1つ分となっています 4 問題の 中の 1 2 などには 特に指 がないかぎり 与えられた 問選択肢群が
intra-mart Accel Platform — OData for SAP HANA セットアップガイド 初版
Copyright 2016 NTT DATA INTRAMART CORPORATION 1 Top 目次 1. 改訂情報 2. はじめに 2.1. 本書の目的 2.2. 前提条件 2.3. 対象読者 2.4. 注意事項 3. 概要 3.1. OData 連携について 3.2. OData について 3.3. SAP HANA 連携について 3.4. アクター 3.5. セットアップの手順について
intra-mart Accel Platform — ViewCreator ユーザ操作ガイド 第6版
Copyright 2012 NTT DATA INTRAMART CORPORATION 1 Top 目次 intra-mart Accel Platform ViewCreator ユーザ操作ガイド第 6 版 2016-04-01 改訂情報 ViewCreator について基本的な設定データ参照一覧リスト集計クロス集計とグラフ集計データ参照へのショートカットスマートフォンからの参照 2 改訂情報
--- サーバ側処理 Java servlet の例 // 通常の Java servlet での POST で受信と同じ protected void dopost(httpservletrequest request, HttpServletResponse response) throws S
2 サーバとの連携と BlazeDS Flex アプリケーションではクライアント ( ブラウザ ) で処理できる機能が多いですが データベースへのアクセスや クライアントでは負担が大きい処理などはサーバ側で行います また パソコンのローカルディスクへのアクセスのように セキュリティの都合でクライアントで直接処理できない場合は一旦サーバにアップロードするなどして処理します 2-1 ファイルアップロードファイルをアップロードする場合は
文字列操作と正規表現
文字列操作と正規表現 オブジェクト指向プログラミング特論 2018 年度只木進一 : 工学系研究科 2 文字列と文字列クラス 0 個以上の長さの文字の列 Java では String クラス 操作 文字列を作る 連結する 文字列中に文字列を探す 文字列中の文字列を置き換える 部分文字列を得る 3 String クラス 文字列を保持するクラス 文字列は定数であることに注意 比較に注意 == : オブジェクトとしての同等性
メソッドのまとめ
メソッド (4) 擬似コードテスト技法 http://java.cis.k.hosei.ac.jp/ 授業の前に自己点検以下のことがらを友達に説明できますか? メソッドの宣言とは 起動とは何ですか メソッドの宣言はどのように書きますか メソッドの宣言はどこに置きますか メソッドの起動はどのようにしますか メソッドの仮引数 実引数 戻り値とは何ですか メソッドの起動にあたって実引数はどのようにして仮引数に渡されますか
Javaセキュアコーディングセミナー2013東京第1回 演習の解説
Java セキュアコーディングセミナー東京 第 1 回オブジェクトの生成とセキュリティ 演習の解説 2012 年 9 月 9 日 ( 日 ) JPCERT コーディネーションセンター脆弱性解析チーム戸田洋三 1 演習 [1] 2 演習 [1] class Dog { public static void bark() { System.out.print("woof"); class Bulldog
目的 泡立ち法を例に Comparableインターフェイスの実装 抽象クラスの利用 型パラメタの利用 比較 入替 の回数を計測
泡立ち法とその実装 計算機アルゴリズム特論 :2017 年度只木進一 目的 泡立ち法を例に Comparableインターフェイスの実装 抽象クラスの利用 型パラメタの利用 比較 入替 の回数を計測 Comparable インターフェイ ス クラスインスタンスが比較可能であることを示す Int compareto() メソッドを実装 Integer Double String などには実装済み public
基本情報STEP UP演習Java対策
トレーニング編 1. 予約語 extends アクセスレベル class サブクラス名 extends スーパクラス名 { (1) スーパクラス ( 既存のクラス ) を拡張して, サブクラス ( 新しいクラス ) を定義する場合に extends を利用する (2) extends の後ろには, スーパクラスの名前を一つだけ指定できる (3) サブクラスからインスタンスを生成すると, スーパクラスに定義されたインスタンス変数やメソッドがこのインスタンス内部に引き継がれる
2
プログラミング応用演習 b 10 月 5 日演習課題 2016/10/05 PAb 演習課題 プログラム仕様書作成課題 課題クラスを読み 次に示すクラスの仕様書を完成させよ なお 仕様書は クラス 1 つに付き 1 つ作成す る 加えて 図 1 のようなクラス継承の模式図を作成せよ < クラス名 のプログラム仕様書 > 作成者 : 学籍番号 名前 (1) クラスクラス名 : クラス名 説明 : クラスが何を表現しているか
Javaプログラムの実行手順
戻り値のあるメソッド メソッドには 処理に使用する値を引数として渡すことができました 呼び出し 側からメソッドに値を渡すだけでなく 逆にメソッドで処理を行った結果の値を 呼び出し側で受け取ることもできます メソッドから戻してもらう値のことを もどりち戻り値といいます ( 図 5-4) 図 5-4. 戻り値を返すメソッドのイメージ 戻り値を受け取ることによって ある計算を行った結果や 処理に成功したか失
Java講座
~ 第 1 回 ~ 情報科学部コンピュータ科学科 2 年竹中優 プログラムを書く上で Hello world 基礎事項 演算子 構文 2 コメントアウト (//, /* */, /** */) をしよう! インデントをしよう! 変数などにはわかりやすい名前をつけよう! 要するに 他人が見て理解しやすいコードを書こうということです 3 1. Eclipse を起動 2. ファイル 新規 javaプロジェクト
Java 基礎問題ドリル ~ メソッドを理解する ~ 次のプログラムコードに 各設問の条件にあうメソッドを追加しなさい その後 そのメソッドが正しく動作することを検証するためのプログラムコードを main メソッドの中に追加しなさい public class Practice { // ここに各設問
Java 基礎問題ドリル ~ メソッドを理解する ~ 次のプログラムコードに 各設問の条件にあうメソッドを追加しなさい その後 そのメソッドが正しく動作することを検証するためのプログラムコードを main メソッドの中に追加しなさい public class Practice { // ここに各設問のメソッドを追加する public static void main(string[] args) {
Dolteng Scaffoldに対する機能追加とマスタ-ディテールScaffoldの紹介
Dolteng Scaffold に対する機能追加 とマスタ - ディテール Scaffold の紹介 せいいち (takao) 2009/03/07 目次 Dolteng Scaffold に対する機能追加 Scaffold に関して Ruby on Rails の Scaffold RoR Scaffold と Dolteng Scaffold の比較 Scaffold のデモ Scaffold
1.SqlCtl クラスリファレンス SqlCtl クラスのリファレンスを以下に示します メソッドの実行中にエラーが発生した場合は標準エラー出力にメッセージを出力します (1)Connect() メソッド データベースへ connect 要求を行います boolean Connect(String
目次 1.SqlCtl クラスリファレンス 2 (1)Connect() メソッド 2 (2)DisConnect() メソッド 3 (3)Commit() メソッド 3 (4)Rollback() メソッド 4 2.SqlStm クラスリファレンス 5 (1)Prepare() メソッド 5 (2)Execute() メソッド 6 (3)Release() メソッド 6 (4)Immediate()
SpringSecurity
Spring Security 1/40 OUTLINE Spring Security Spring Securityを使った認証の仕組み Spring Securityを使った独自認証 認証エラーメッセージの変更 2/40 Spring Security 3/40 Spring Security とは アプリケーションのセキュリティを高めるためのフレームワーク 認証 認可機能 その他 多数のセキュリティ関連の機能を持つ
intra-mart WebPlatform/AppFramework
intra-mart WebPlatform/AppFramework Ver.7.2 FormatCreator プログラミングガイド 2010/04/01 初版 変更年月日 2010/04/01 初版 > 変更内容 目次 > 1 はじめに...1 1.1 本書の目的...1 1.2 前提条件...1 1.3 準備...1 2 クラス指定...2 2.1 サンプル実行の準備...2
intra-mart Accel Platform
目次目次 Copyright 2014 NTT DATA INTRAMART CORPORATION クイック検索検索 1 Top 目次 改訂情報はじめに本書の目的対象読者本書の構成概要 OAuthとは で提供している認証フロー認可コードによる認可インプリシットグラントアクセストークンの更新 で提供しているエンドポイントアクセストークンの有効期限と更新方法アクセストークンの有効期限の設定方法 2 改訂情報
JavaプログラミングⅠ
Java プログラミング Ⅰ 12 回目クラス 今日の講義で学ぶ内容 クラスとは クラスの宣言と利用 クラスの応用 クラス クラスとは 異なる複数の型の変数を内部にもつ型です 直観的に表現すると int 型や double 型は 1 1 つの値を管理できます int 型の変数 配列型は 2 5 8 6 3 7 同じ型の複数の変数を管理できます 配列型の変数 ( 配列変数 ) クラスは double
Java知識テスト問題
Java 知識テスト SDAS プログラマ(Java 編 ) 運営事務局 このテストは J2EE プログラマとしての Java の知識を評価するものです 問題は 30 問, テスト時間は J2EE 知識テストとあわせて 90 分です 問題は全て択一式です 選択肢から 1 つだけ選択してください 資料の閲覧は禁止です テストが終わり次第 答案用紙を提出していただいてかまいません テスト終了後, 本テストの内容を他の方に話さないでください
(1) プログラムの開始場所はいつでも main( ) メソッドから始まる 順番に実行され add( a,b) が実行される これは メソッドを呼び出す ともいう (2)add( ) メソッドに実行が移る この際 add( ) メソッド呼び出し時の a と b の値がそれぞれ add( ) メソッド
メソッド ( 教科書第 7 章 p.221~p.239) ここまでには文字列を表示する System.out.print() やキーボードから整数を入力する stdin.nextint() などを用いてプログラムを作成してきた これらはメソッドと呼ばれるプログラムを構成する部品である メソッドとは Java や C++ などのオブジェクト指向プログラミング言語で利用されている概念であり 他の言語での関数やサブルーチンに相当するが
開発・運用時のガイド JDK8への移行に伴う留意点 [UNIX]
開発 運用時のガイド [UNIX] JDK8 への移行に伴う留意点 2015.10 O c t o b e r はじめに 本書は 開発 運用フェーズで使用するドキュメントとして Java TM Development Kit 8 への移行に伴う 留意点について記述しています 1. 対象とする読者本書は Java TM Development Kit 8 を使用し システムを設計 構築 運用する立場にある方を対象としています
intra-mart WebPlatform/AppFramework
intra-mart WebPlatform/AppFramework Ver.7.2 Maskat 連携プログラミングガイド 2010/10/29 第 2 版 > 変更年月日変更内容 2010/04/01 初版 2010/10/29 第 2 版 maskat-2.2.0 の同梱よる説明の追加 (1.1 / 1.2) マスカットサンプルのソースコードを maskat-2.2.0
1/8 ページ Java 基礎文法最速マスター Java Javaの文法一覧です 他の言語をある程度知っている人はこれを読めばJavaの基礎をマスターしてJavaを書くことができるようになっています 簡易リファレンスとしても利用できると思いますので これは足りないと思うものがあれば教えてください 1. 基礎 class の作成プログラムはclassに記述します たとえばSampleという名前のclassを作る場合
第1章 ビジュアルプログラミング入門
付録 A 既存のクラスの利用の仕方 第 7 章では フレームクラス (NewJFrame.java) とそこから呼び出されるクラス (Meibo.java など ) を同じプロジェクト内 つまり同じパッケージ内に定義しました しかし 一般には 別のパッケージ ( フォルダ ) に保管されているクラスを利用する場合があります ここでは その方法を説明します なお フォルダは Java の用語ではパッケージに対応するので
HCI プログラミング 8 回目ボタン チェックボックス ラジオボタン 今日の講義で学ぶ内容 ボタンとアクションイベント ボタンのカスタマイズ チェックボックスとラジオボタン ボタンとアクションイベント 1 ボタンを配置してみましょう ボタンは ラベルと同じようにフォントやその色 画像の貼り付けなど
HCI プログラミング 8 回目ボタン チェックボックス ラジオボタン 今日の講義で学ぶ内容 ボタンとアクションイベント ボタンのカスタマイズ チェックボックスとラジオボタン ボタンとアクションイベント 1 ボタンを配置してみましょう ボタンは ラベルと同じようにフォントやその色 画像の貼り付けなどを設定できます ソースファイル名 :Sample8_1.java // HP よりインポート文をここへ貼り付けてください
FW ファイルアップロード ダウンロード機能利用ガイド Version 年 9 月 21 日富士通株式会社 i All Right Reserved, Copyright FUJITSU LIMITED
FW ファイルアップロード ダウンロード機能利用ガイド Version 1.1 2016 年 9 月 21 日富士通株式会社 i 改訂履歴改訂 No. 日付 Version 章 No. 項 No. 改訂内容 1 2015/12/02 1.0 - - 新規作成 2 2016/09/21 1.1 4 4.1.3 text/plan を text/plain に修正 章立てを修正 ii 目次 第 1 章
JavaプログラミングⅠ
Java プログラミング Ⅱ 8 回目抽象クラスとインタフェース課題 確認 問題次の各文は正しいか誤っているか答えなさい (1) 抽象クラスのオブジェクトは生成できる (2) 抽象メソッドとはメソッドの本体が未定義のメソッドである (3) 抽象メソッドをメンバーにもつクラスは抽象クラスである (4) 抽象クラスを拡張してすべての抽象メソッドをオーバーライドすれば サブクラスのオブジェクトを生成できる
HashMapからConcurrentHashMapへの移行
HashMap から ConcurrentHashMap への移行 レガシー アプリケーションにおける注意点 2012 年 1 月 4 日橋口雅史 1. はじめにアプリケーションでは キーと値のマッピングが多用されます 例えば ユーザー名 というキーにユーザーの 情報 をマッピングするといった用途で java.util.map インタフェースは広く使われています 特に ハッシュテーブルに基づいて高速にマップを検索
intra-mart マスカット連携ガイド
intra-mart マスカット連携ガイド Version 6.1 第三版 2008 年 1 月 31 日 > 変更年月日変更内容 2007/7/31 初版 2007/8/31 第二版以下の説明を追加 3.1.2.2 初期表示時のアクション 3.2.2.2 初期表示時のアクション 2008/1/31 第三版 3.3 デバック を追加 目次 > 1 はじめに...3
intra-mart Accel Platform — Office 365 連携プログラミングガイド 初版
クイック検索検索 目次 Copyright 2015 NTT DATA INTRAMART CORPORATION 1 Top 目次 intra-mart Accel Platform Office 365 連携プログラミングガイド初版 2015-08-01 1. 改訂情報 2. はじめに 2.1. 本書の目的 2.2. 対象読者 2.3. サンプルコードについて 2.4. 本書の構成 3. Office
Exam : 1z1-809-JPN Title : Java SE 8 Programmer II Vendor : Oracle Version : DEMO Get Latest & Valid 1z1-809-JPN Exam's Question and Answers 1 from Ac
Actual4Test http://www.actual4test.com Actual4test - actual test exam dumps-pass for IT exams Exam : 1z1-809-JPN Title : Java SE 8 Programmer II Vendor : Oracle Version : DEMO Get Latest & Valid 1z1-809-JPN
Prog2_9th
2013 年 11 月 21 日 ( 木 ) 実施例外処理 Java 言語では, 作成したプログラムを実行する際に, 記述した処理が想定しない事態によって実行できなくなる場合を例外と呼び, その例外への対処, 即ち例外処理が求められる これまでの教材に登場した例外の中で,IOException はコンパイラがチェックするため, 例外処理を必ず記述しなければコンパイルが出来ないものであるのに対して,ArithmeticException
Javaプログラマー早期育成ドリル ~コードリーディング編~ 解答
Java プログラマー早期育成ドリルコードリーディング編 解答 2 版 2017 年 1 月 本資料は UFN25W:Javaプログラマー早期育成ドリルコードリーディング編 をご購入頂いた方にのみ提供される資料です 資料内容の転載はご遠慮ください 本解答は UFN25W:Javaプログラマー早期育成ドリルコードリーディング編 の初版および2 版に対応しています コラム一覧 このドリルの解答では すべての構文の紹介はしていません
第 2 章インタフェース定義言語 (IDL) IDL とは 言語や OS に依存しないインタフェース定義を行うためのインタフェース定義言語です CORBA アプリケーションを作成する場合は インタフェースを定義した IDL ファイルを作成する必要があります ここでは IDL の文法や IDL ファイ
第 2 章インタフェース定義言語 (IDL) IDL とは 言語や OS に依存しないインタフェース定義を行うためのインタフェース定義言語です CORBA アプリケーションを作成する場合は インタフェースを定義した IDL ファイルを作成する必要があります ここでは IDL の文法や IDL ファイルの作成方法 コンパイル方法について説明します IDL ファイルの作成にあたっては INTERSTAGE
