9.3.5 Javaユーザプログラム開発ライブラリ(サンプル提供)
ここでは,Javaでユーザプログラムを作成する際の開発ライブラリについて説明します。本開発ライブラリはサンプルとして提供するものであり,Groupmax Agentとしての正式リリースではありませんので御了承ください。
- <この項の構成>
- (1) JavaAgentクラスと基本APIライブラリ
- (2) メール送信APIライブラリ
(1) JavaAgentクラスと基本APIライブラリ
JavaAgentクラスは,Javaでのユーザプログラム開発で,すべてのエージェントクラスのスーパークラスとなる抽象クラスです。したがって,Javaでのアプレット開発をAppletクラスから導き出して行うように,Javaでのユーザカスタマイズエージェントクラスは,JavaAgentクラスから導き出して作成してください。JavaAgentクラスは,このようにして作成されたエージェントクラスに対して,次の機能を提供します。
- ユーザプログラムの実行エントリポイント
- エージェント定義情報アクセス,永続メモリアクセスやログ出力など
JavaAgentクラスの詳細を次に示します。
- パッケージ名:Hitachi.Isrd.AgentServer.AgentClass
- クラス名:JavaAgent(public abstract class JavaAgent)
- JavaAgentクラスメンバ
- エントリポイントコールバックメソッド
- 開発するユーザプログラムの提供する機能に応じて,次のメソッドをオーバーライドし,メソッド内に対応する処理を記述します。例えば,アクション実行要求時にはonDoActionメソッドが呼ばれ,メソッド内の処理が実行されます。
- アクション実行要求:public int onDoAction()
- これらのコールバックメソッドのリターン値として,次の値を返してください。
- public static final int:AG_ACT_OK;
- public static final int:AG_ERR_NOTSUPPORT;
- public static final int:AG_ERR_USR;
- 現バージョンでは onDoActionだけのサポートのため,onDoActionコールバックのリターン値として次のどれかを返します。
- AG_ACT_OK:アクション実行成功
- AG_ERR_NOTSUPPORT:エラー(未サポートのアクションタイプ)
- AG_ERR_USR + i:エラー(ユーザ定義エラーコード)
- エージェント定義情報アクセスメソッド
- エージェントID(Unicode文字列)取得
public String getAgentID()
- エージェント所有者ユーザID(Unicode文字列)取得
public String getOwnerID()
- エージェント名文字列(Unicode文字列)取得
public String getAgentName()
- 定義パラメタアクセスメソッド
public String getDefParamString(String keyWord)
- 永続メモリアクセスメソッド
public void setPersistentMemoryString(String keyWord,
String value)
public String getPersistentMemoryString(String keyWord)
public void deletePersistentMemory(String keyWord)
- ログ出力メソッド
public void putLog(int logType, Stri-ng eventName,
String eventInfo)
(2) メール送信APIライブラリ
C言語でのメール送信APIは,次のJavaクラスライブラリにラッピングされます。図9-11に示す呼び出し手順に従って使用してください。
図9-11 メール送信APIの呼び出し手順(サンプルプログラム)
![[図データ]](figure/zu0911.gif)
メール送信APIの詳細を次に示します。
- パッケージ名:Hitachi.Isrd.AgentServer.Util.Mail
- メール送信環境クラス
- オブジェクト生成時にメール送信に必要な環境を整えます。メール送信作業終了後,freeメソッドでリソースを解放します。
- クラス名:SendMailEnv(public class SendMailEnv)
- メソッド
- コンストラクタ(メール送信環境を確保)
public SendMailEnv(JavaAgent jA, String workDir)
- メール送信環境を解放
public void free()
- E-mail(uuencode形式)でのメールコンテンツ作成作業を準備
public EMailUUEncoded prepareEMailUUEncoded()
- E-mail(MIME Multi-part/mixed形式)でのメールコンテンツ作成作業を準備
public EMailMIMEMultMixed prepareEMailMIMEMultMixed()
- Groupmax Mailでのメールコンテンツ作成作業を準備
public GroupMail prepareGroupMail()
- E-mail(MIME形式)でのメールコンテンツを作成
public EMailMIMEPartContent makeEMailMIMEPartContent(EMMIMEPARTINFO emmpi)
- E-mailでのメール送信を実行
public void SendMail(EMailContent emc, SENDMAILINFO smi)
- Groupmax Mailでのメール送信を実行
public void SendMail(GroupMailContent gmc,
SENDMAILINFO smi)
- メールコンテンツクラス群
- メールコンテンツクラス
- 送信後freeメソッドを呼び出し,リソースを解放します。このクラス自体は抽象クラスです。実際の処理は次の派生クラス内に記述します。
- クラス名:MailContent(public abstract class MailContent)
- メソッド
- メールコンテンツリソースを解放
public abstract void free()
- E-mailコンテンツクラス
- クラス名:EMailContent
- (protected class EMailContent extends MailContent)
- メソッド
- E-mailコンテンツリソースを解放
public void free()
- E-mail(MIME形式)コンテンツクラス
- クラス名:EMailMIMEPartContent
- (protected class EMailMIMEPartContent extends EMailContent)
- Groupmax Mailコンテンツクラス
- クラス名:GroupMailContent
- (protected class GroupMailContent extends MailContent)
- メソッド
- Groupmailコンテンツリソースを解放
public void free()
- メールコンテンツ作成作業クラス
- E-mail(uuencode形式)でのメールコンテンツ作成作業クラス
- クラス名:EMailUUEncoded(public class EMailUUEncoded)
- メソッド
- メールの各パート(添付ファイル)追加
public void appendPart(EMUUPARTINFO partInfo)
- メールコンテンツ生成
public EMailContent makeMailContent()
- 作業クラスリソース解放
public void free()
- E-mail(MIME Multi-part/mixed形式)でのメールコンテンツ作成作業クラス
- クラス名:EMailMIMEMultMixed
- (public class EMailMIMEMultMixed)
- メソッド
- MIMEパート追加
public void appendPart(EMailMIMEPartContent)
- メールコンテンツ生成
public EMailMIMEPartContent makeMailContent()
- 作業クラスリソース解放
public void free()
- Groupmax Mailでのメールコンテンツ作成作業クラス
- クラス名:GroupMail(public class GroupMail)
- メソッド
- 添付ファイル追加
public void appendPart(MAILPARTINFO mpi)
- メールコンテンツ生成
public GroupMailContent makeMailContent()
- 作業クラスリソース解放
public void free()
- メール送信API関数呼出し時に使用するパラメタ情報格納クラス群
- C言語でのメール送信APIの,同一名の構造体に対応します。
- 添付ファイル情報格納クラス
- 添付ファイルとして付加するデータをデータ格納ファイル名又はデータ自身のバイト列として指定します。
- クラス名:MAILPARTINFO(public class MAILPARTINFO)
- メソッド(コンストラクタ)
- public MAILPARTINFO(File onFileCont)
- public MAILPARTINFO(byte onMemCont)
- public MAILPARTINFO(byte onMemCont, int onMemContLen)
- uuencode形式でのエンコーディングによる添付ファイルの情報格納クラス
- E-mail(uuencode形式)での送信時に使用します。
- クラス名:EMUUPARTINFO
- (public class EMUUPARTINFO extends MAILPARTINFO)
- メソッド(コンストラクタ)
- public EMUUPARTINFO(int encodeType, String destFileName,
File onFileCont)
- public EMUUPARTINFO(int encodeType, String destFilename,
byte onMemCont)
- public EMUUPARTINFO(int encodeType, String destFileName,
byte onMemCont, int onMemContLen)
- メンバ変数
- エンコーディング指定
public static final int AG_ETNOENCODE; // エンコードしない
public static final int AG_ETUUENCODE; // エンコードする
- MIME形式での添付ファイル(MIMEパート)の情報格納クラス
- E-mail(MIME形式)での送信時に使用します。
- クラス名:EMMIMEPARTINFO(public class EMMIMEPARTINFO)
- メソッド(コンストラクタ)
- public EMMIMEPARTINFO(int type, int subType,
- MIMEPARAM params[], int encodeType,
- MAILPARTINFO partInfo
- );
- public EMMIMEPARTINFO(int type, String xSubType,
- MIMEPARAM params[], int encodeType,
- MAILPARTINFO partInfo
- );
- public EMMIMEPARTINFO(String xType, String xSubType,
- MIMEPARAM params[], int encodeType,
- MAILPARTINFO partInfo
- );
- public EMMIMEPARTINFO(int type, int subType,
- MIMEPARAM params[], int encodeType,
- String contentID, String contentDescription,
- MIMEHEADFIELD addFields,
- MAILPARTINFO content
- );
- public EMMIMEPARTINFO(int type, String xSubType,
- MIMEPARAM params[], int encodeType,
- String contentID, String contentDescription,
- MIMEHEADFIELD addFields,
- MAILPARTINFO content
- );
- public EMMIMEPARTINFO(String xType, String xSubType,
- MIMEPARAM params[], int encodeType,
- String contentID, String contentDescription,
- MIMEHEADFIELD addFields,
- MAILPARTINFO content
- );
- メンバ変数
- MIMEコンテンツタイプ(Content-Typeヘッダフィールド)のtype指定
(例)
Content-Type: application/octet-stream
public static final int AG_T_TEXT; // "text" type
public static final int AG_T_APPLICATION; // "application" type
- MIMEコンテンツタイプのsubtype指定
(例)
public static final int AG_ST_PLAIN; // "plain" subtype
public static final int AG_ST_HTML; // "html" subtype
public static final int AG_ST_OCTET_STREAM; // "octet-stream" subtype
- エンコードタイプ指定(Content-Transfer-Encodingヘッダフィールド)
(例)
Content-Transfer-Encoding: base64
public static final int AG_ETBASE64; // base64
public static final int AG_ET7BIT; // 7bit
public static final int AG_ET8BIT; // 8bit
public static final int AG_ETBINARY; / binary
public static final int AG_ETDEFAULT; // デフォルトのエンコードタイプ
- MIMEヘッダフィールドのパラメタ情報指定クラス
- MIMEヘッダのフィールドを指定します。
- <fieldName>: <fieldValue>; <paramName1>=<paramValue1>; ... ; <paramNameN>=<paramValueN>
- (例)
- ContentType: text/html; charset=iso-2022-jp
- クラス名:MIMEPARAM(public class MIMEPARAM)
- メソッド(コンストラクタ)
- public MIMEPARAM(int paramName, int paramValue)
- public MIMEPARAM(int paramName, String xParamValue)
- public MIMEPARAM(String xParamName, String xParamValue)
- メンバ変数
- パラメタ名
public static final int AG_TP_CHARSET; // "charset"("text" MIME typeで使用)
- パラメタ値
public static final int AG_CS_USASCII; // "us-ascii"("charset"パラメタの値)
public static final int AG_CS_ISO2022JP; // "iso-2022-jp"("charset"パラメタの値)
- MIMEパートの追加ヘッダフィールド情報指定クラス
- 次の書式で追加されます。
- <fieldName>: <fieldValue>; <paramName1>=<paramValue1>; ... ; <paramNameN>=<paramValueN>
- クラス名:MIMEHEADFIELD(public class MIMEHEADFIELD)
- メソッド(コンストラクタ)
- public MIMEHEADFIELD(String fieldName, String fieldValue,
- MIMEPARAM params[])
- メール送信情報指定クラス
- クラス名:SENDMAILINFO (public class SENDMAILINFO)
- メソッド(コンストラクタ)
- public SENDMAILINFO (String to[], String cc[], String bcc[],
- String subject, String from)
- public SENDMAILINFO (
- String to[], String cc[], String bcc[], String subject, String from,
- OtherSendInfo osi
- );
- Groupmax Mailでの送信情報指定クラス
- クラス名:GRPMAILSENDINFO
- (public class GRPMAILSENDINFO extends OtherSendInfo)
- メソッド(コンストラクタ)
- public GRPMAILSENDINFO(String passwd)
- public GRPMAILSENDINFO(GRPMAILATTR GrpMailAttr)
- public GRPMAILSENDINFO(String passwd,
- GRPMAILATTR GrpMailAttr )
- Groupmax Mailでのメール属性指定クラス
- クラス名:GRPMAILATTR (public class GRPMAILATTR)
- メソッド(コンストラクタ)
- public GRPMAILATTR(
- char discloserecip,
- char rcvreassign,
- char priority,
- char importance,
- char sensitivity,
- );
- メンバ変数
- 他受信者名公開指定
public static final char AG_DISCLOSERECIP_OPEN; // デフォルト
public static final char AG_DISCLOSERECIP_CLOSE;
- 受信者指定代行受信許可
public static final char AG_RCVREASSIGN_ALLOWED; // デフォルト
public static final char AG_RCVREASSIGN_PROHIBITED;
- 緊急度
public static final char AG_PRIORITY_NORMAL; // デフォルト
public static final char AG_PRIORITY_URGENT;
- 重要度
public static final char AG_IMPORTANCE_NORMAL; // デフォルト
- 秘密度
public static final char AG_SENSITIVITY_NORMAL; // デフォルト
public static final char AG_SENSITIVITY_PRIVATE;
- 上記のすべての設定でデフォルトを指定する場合は,次のようにします。
- public static final char AG_GRPMAILATTR_DEFAULT;