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;