package com.opentravelsoft.util;
import java.io.IOException;
import org.apache.commons.collections.ExtendedProperties;
/**
* プロパティにアクセスするためのクラス.
*
* @author nokami
*/
public class PropertyAccess
{
private static PropertyAccess INSTANCE = null;
private static ExtendedProperties prop = null;
private static final String PROPERTY_FILE_NAME = "/eap-core.properties";
private static final String PROP_ONETIMEPASS_LIMIT = "oneTimePass.limit";
private static final String PROP_MAIL_FROM = "mail.from";
private static final String PROP_MAIL_SMTP_IP = "mail.smtp.ip";
private static final String PROP_MAIL_SMTP_PORT = "mail.smtp.port";
private static final String PROP_MAIL_REGIST_SUBJECT = "mail.regist.subject";
private static final String PROP_MAIL_UPDATE_SUBJECT = "mail.update.subject";
private static final String PROP_MAIL_DELETE_SUBJECT = "mail.delete.subject";
private static final String PROP_MAIL_CHANGE_SUBJECT = "mail.change.subject";
private static final String PROP_JPORTAL_HOST = "jportal.host";
private static final String PROP_SPORTAL_HOST = "sportal.host";
private static final String PROP_KANRI_HOST = "kanri.host";
private static final String PROP_SINSA_HOST = "sinsa.host";
private static final String PROP_CHANGEPASS_PATH = "changePass.path";
private static final String PROP_CHANGEPASS_LIMIT = "changePass.limit";
/**
* 連携用ワンタイムパスワードの有効期限を取得します.
*
* @return ワンタイムパスワードの有効期限 ( 分 )
*/
public int getOneTimePassLimit()
{
return prop.getInt(PROP_ONETIMEPASS_LIMIT);
}
/**
* Fromのメールアドレスを取得します。
*
* @return
*/
public String getMailFrom()
{
return prop.getString(PROP_MAIL_FROM);
}
/**
* mail送信のSMTPを取得します。
*
* @return
*/
public String getSmtpIp()
{
return prop.getString(PROP_MAIL_SMTP_IP);
}
/**
* mail送信のport番号を取得します。
*
* @return
*/
public int getSmtpPort()
{
return prop.getInt(PROP_MAIL_SMTP_PORT);
}
/**
* 利用者情報登録時のsubjectを取得します。
*
* @return
*/
public String getMailRegistSubject()
{
return prop.getString(PROP_MAIL_REGIST_SUBJECT);
}
/**
* 利用者情報変更時のsubjectを取得します。
*
* @return
*/
public String getMailUpdateSubject()
{
return prop.getString(PROP_MAIL_UPDATE_SUBJECT);
}
/**
* 利用者情報削除時のsubjectを取得します。
*
* @return
*/
public String getMailDeleteSubject()
{
return prop.getString(PROP_MAIL_DELETE_SUBJECT);
}
/**
* パスワード変更・再設定時のsubjectを取得します。
*
* @return
*/
public String getMailChangeSubject()
{
return prop.getString(PROP_MAIL_CHANGE_SUBJECT);
}
/**
* 住民ポータルサーバホスト名を取得します。
*
* @return
*/
public String getJportalHost()
{
return prop.getString(PROP_JPORTAL_HOST);
}
/**
* 職員ポータルサーバホスト名を取得します。
*
* @return
*/
public String getSportalHost()
{
return prop.getString(PROP_SPORTAL_HOST);
}
/**
* 管理サーバホスト名を取得します。
*
* @return
*/
public String getKanriHost()
{
return prop.getString(PROP_KANRI_HOST);
}
/**
* 審査サーバホスト名を取得します。
*
* @return
*/
public String getSinsaHost()
{
return prop.getString(PROP_SINSA_HOST);
}
/**
* パスワード変更時のURLのサーブレット名を取得します。
*
* @return
*/
public String getChangepassPath()
{
return prop.getString(PROP_CHANGEPASS_PATH);
}
/**
* パスワード変更の有効期限(分)を取得します.
*
* @return
*/
public int getChangepassLimit()
{
return prop.getInt(PROP_CHANGEPASS_LIMIT);
}
/**
* コンストラクタ.
*
* @throws IOException
*/
private PropertyAccess() throws IOException
{
prop = new ExtendedProperties();
prop.load(PropertyAccess.class.getResourceAsStream(PROPERTY_FILE_NAME),
"UTF-8");
}
/**
* インスタンスを取得します.
*
* @return
*/
static public PropertyAccess getInstance()
{
if (INSTANCE == null)
{
synchronized (PropertyAccess.class)
{
if (INSTANCE == null)
{
try
{
INSTANCE = new PropertyAccess();
} catch (IOException e)
{
// TODO
}
}
}
}
return INSTANCE;
}
}