Groupmax Agent Version 5 エージェント作成ガイド

[目次][用語][索引][前へ][次へ]


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の呼び出し手順(サンプルプログラム)

[図データ]

メール送信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;

[目次][前へ][次へ]


[他社商品名称に関する表示]

All Rights Reserved, Copyright (C) 1999, Hitachi, Ltd.