📄 preferenceinfo.java
字号:
package jp.co.ntl.preference;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;
import java.util.Vector;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;
public class PreferenceInfo {
public static final String PREF_FILE = "./preferences.properties";
// 僼傽僀儖柤
public static final String XML_FILE_NAME = "./preferences.xml"; // XML僼傽僀儖柤
public static final String XML_TEMP_FILE_NAME = "./temp.xml"; // 僥儞億儔儕僼傽僀儖柤
// 僞僌柤
public static final String TAG_INFO = "info";
public static final String TAG_PREFERENCE_INFO = "preferenceInfo";
// 懏惈柤
public static final String ATTR_ID = "id";
public static final String ATTR_VALUE = "value";
// 僉乕柤
public static final String KEY_DEBUG = "debug";
public static final String KEY_LANGUAGE = "language";
public static final String KEY_PAPER_INFO_SUPPORT = "paperInfo.support";
public static final String KEY_VENDER = "vender";
public static final String KEY_SESSION_TIMER_VALUE = "sessionTimerValue";
public static final String KEY_CARD_RW_ADDR = "cardRWAddr";
public static final String KEY_FELICA_SYS_CODE = "felicaSysCode";
public static final String KEY_HOST = "host";
public static final String KEY_PORT = "port";
public static final String KEY_USEHTTPS = "useHttps";
public static final String KEY_PATH = "path";
public static final String KEY_AUTHTYPE = "auth.type";
public static final String KEY_ALLOW_SELECTED_AUTHTYPE = "allowSelectedAuthType";
// 抂枛庬暿
public static final int CLIENT_WINDOWS = 0;
public static final int CLIENT_MAC = 1;
public static final int CLIENT_LINUX = 2;
// 儀儞僟乕
public static final String VENDER_NTL = "";
public static final String VENDER_METRO = "metro";
public static final String DEF_VENDER = VENDER_NTL;
// URL
public static final String HTTP_STR = "http://";
public static final String HTTPS_STR = "https://";
public static final String SERVLET_DIR_STR = "/servlet/";
// 擣徹庬暿
public static final int AUTH_USB = 0;
public static final int AUTH_LOGIN = 1;
public static final int AUTH_NET_FELICA = 2;
public static final int AUTH_FELICA = 3;
// 僨僼僅儖僩抣
public static final String KEY_IMAGE_BACKGROUND = "image.background";
public static final int DEF_SESSION_TIMER_VALUE = 60; // 僙僢僔儑儞僞僀儉傾僂僩抣(1s)
public static final boolean DEF_DEBUG = false; // 僨僶僢僌儌乕僪
public static final boolean DEF_PAPER_INFO_SUPPORT = true; // 梡巻僒僀僘僒億乕僩
public static final String DEF_CARD_RW_ADDR = "192.168.1.100"; // 僇乕僪R/W傾僪儗僗
public static final int DEF_FELICA_SYS_CODE = 0xffff; // 僼僃儕僇僔僗僥儉僐乕僪
public static final String DEF_HOST = "127.0.0.1"; // 儂僗僩柤
public static final int DEF_PORT = 8080; // 億乕僩斣崋
public static final boolean DEF_USE_HTTPS = false; // HTTPS巊梡
public static final String DEF_PATH = "/SPS"; // 僷僗柤
public static final int DEF_AUTHTYPE = AUTH_LOGIN; // 擣徹庬暿
public static final boolean DEF_ALLOW_SELECTED_AUTH_TYPE = false; // 擣徹庬暿慖戰嫋壜僼儔僌
public static final String DEF_BACKGROUND_IMAGE = "background.gif"; // 僶僢僋僌儔儞僪僀儊乕僕
public static final int DEF_CLIENT = CLIENT_WINDOWS; // 抂枛庬暿
public static final String DEF_LANGUAGE = ""; // 尵岅
public static final int DEF_PREF_ID = 0; // 弶婜愝掕忣曬ID
// 嵟戝擖椡挿
public static final int MAX_CARD_RW_ADDR_LEN = 16; // 僇乕僪RW傾僪儗僗嵟戝挿
public static final int MAX_HOST_LEN = 256; // 儂僗僩柤嵟戝挿
public static final int MAX_PATH_LEN = 256; // 僷僗柤嵟戝挿
// 擖椡嵟戝丄嵟彫抣
public static final int MAX_FELICA_SYS_CODE = 0xffff; // 僼僃儕僇僔僗僥儉僐乕僪嵟戝抣
public static final int MIN_FELICA_SYS_CODE = 0x0000; // 僼僃儕僇僔僗僥儉僐乕僪嵟彫抣
public static final int MAX_PORT_NUM = 65535; // 億乕僩斣崋嵟戝抣
public static final int MIN_PORT_NUM = 1; // 億乕僩斣崋嵟彫抣
public static final int MAX_SESSION_TIMER_VALUE = 3600; // 僙僢僔儑儞僞僀儉傾僂僩抣嵟戝抣
public static final int MIN_SESSION_TIMER_VALUE = 30; // 僙僢僔儑儞僞僀儉傾僂僩抣嵟彫抣
public static final int AUTH_LOGINID = 1;
private String fileName;
private Vector vcPrefInfos;
private int curIdx;
public PreferenceInfo() {
// this.fileName = XML_FILE_NAME;
this.fileName = XML_FILE_NAME;
this.curIdx = DEF_PREF_ID;
this.vcPrefInfos = new Vector();
}
public Vector getAllPreferenceInfos() {
return vcPrefInfos;
}
public void setAllPreferenceInfos(Vector vcPrefInfos) {
this.vcPrefInfos = vcPrefInfos;
}
public void addPreferenceInfo(PreferenceInfoElement prefInfo) {
this.vcPrefInfos.addElement(prefInfo);
}
public PreferenceInfoElement getPreferenceInfo(int idx) {
if (idx >= 0 && idx < vcPrefInfos.size()) {
return (PreferenceInfoElement)vcPrefInfos.elementAt(idx);
}
return null;
}
public void deletePreferenceInfo(int idx) {
if (idx >= 0 && idx < vcPrefInfos.size()) {
this.vcPrefInfos.remove(idx);
}
}
public void deleteAllPreferenceInfos() {
this.vcPrefInfos.removeAllElements();
}
public int getCurIdx() {
return curIdx;
}
public void setCurIdx(int curIdx) {
this.curIdx = curIdx;
}
public String getBackgroundImageName() {
return getBackgroundImageName(curIdx);
}
private String getBackgroundImageName(int idx) {
if (idx < 0 || idx >= vcPrefInfos.size()) {
return DEF_BACKGROUND_IMAGE;
}
return ((PreferenceInfoElement)vcPrefInfos.elementAt(idx)).getBackgroundImageName();
}
public void setBackgroundImageName(String backgroundImage) {
setBackgroundImageName(curIdx, backgroundImage);
}
private void setBackgroundImageName(int idx, String backgroundImage) {
if (idx < 0 || idx >= vcPrefInfos.size()) {
return;
}
PreferenceInfoElement prefInfo = (PreferenceInfoElement)vcPrefInfos.elementAt(idx);
prefInfo.setBackgroundImageName(backgroundImage);
vcPrefInfos.setElementAt(prefInfo, idx);
}
public int getClientKind() {
String client = System.getProperty("os.name", "");
if (client.indexOf("Mac") >= 0) {
return CLIENT_MAC;
}
return CLIENT_WINDOWS;
}
public void setClientKind(int clientKind) {
}
public void setDebug(boolean debug) {
setDebug(curIdx, debug);
}
private void setDebug(int idx, boolean debug) {
if (idx < 0 || idx >= vcPrefInfos.size()) {
return;
}
PreferenceInfoElement prefInfo = (PreferenceInfoElement)vcPrefInfos.elementAt(idx);
prefInfo.setDebug(debug);
vcPrefInfos.setElementAt(prefInfo, idx);
}
public boolean isDebug() {
return isDebug(curIdx);
}
private boolean isDebug(int idx) {
if (idx < 0 || idx >= vcPrefInfos.size()) {
return DEF_DEBUG;
}
return ((PreferenceInfoElement)vcPrefInfos.elementAt(idx)).isDebug();
}
public String getLanguage() {
return getLanguage(curIdx);
}
private String getLanguage(int idx) {
if (idx < 0 || idx >= vcPrefInfos.size()) {
return DEF_LANGUAGE;
}
return ((PreferenceInfoElement)vcPrefInfos.elementAt(idx)).getLanguage();
}
public void setLanguage(String language) {
setLanguage(curIdx, language);
}
private void setLanguage(int idx, String language) {
if (idx < 0 || idx >= vcPrefInfos.size()) {
return;
}
PreferenceInfoElement prefInfo = (PreferenceInfoElement)vcPrefInfos.elementAt(idx);
if (language == null) {
prefInfo.setLanguage("");
} else {
prefInfo.setLanguage(language);
}
vcPrefInfos.setElementAt(prefInfo, idx);
}
public boolean isPaperInfoSupport() {
return isPaperInfoSupport(curIdx);
}
private boolean isPaperInfoSupport(int idx) {
if (idx < 0 || idx >= vcPrefInfos.size()) {
return DEF_PAPER_INFO_SUPPORT;
}
return ((PreferenceInfoElement)vcPrefInfos.elementAt(idx)).isPaperInfoSupport();
}
public void setPaperInfoSupport(boolean paperInfoSupport) {
setPaperInfoSupport(curIdx, paperInfoSupport);
}
private void setPaperInfoSupport(int idx, boolean paperInfoSupport) {
if (idx < 0 || idx >= vcPrefInfos.size()) {
return;
}
PreferenceInfoElement prefInfo = (PreferenceInfoElement)vcPrefInfos.elementAt(idx);
prefInfo.setPaperInfoSupport(paperInfoSupport);
vcPrefInfos.setElementAt(prefInfo, idx);
}
public String getVender() {
return getVender(curIdx);
}
private String getVender(int idx) {
if (idx < 0 || idx >= vcPrefInfos.size()) {
return DEF_VENDER;
}
return ((PreferenceInfoElement)vcPrefInfos.elementAt(idx)).getVender();
}
public void setVender(String vender) {
setVender(curIdx, vender);
}
private void setVender(int idx, String vender) {
if (idx < 0 || idx >= vcPrefInfos.size()) {
return;
}
PreferenceInfoElement prefInfo = (PreferenceInfoElement)vcPrefInfos.elementAt(idx);
prefInfo.setVender(vender);
vcPrefInfos.setElementAt(prefInfo, idx);
}
public int getSessionTimerValue() {
return getSessionTimerValue(curIdx);
}
private int getSessionTimerValue(int idx) {
if (idx < 0 || idx >= vcPrefInfos.size()) {
return DEF_SESSION_TIMER_VALUE;
}
return ((PreferenceInfoElement)vcPrefInfos.elementAt(idx)).getSessionTimerValue();
}
public void setSessionTimerValue(int sessionTimerValue) {
setSessionTimerValue(curIdx, sessionTimerValue);
}
private void setSessionTimerValue(int idx, int sessionTimerValue) {
if (idx < 0 || idx >= vcPrefInfos.size()) {
return;
}
PreferenceInfoElement prefInfo = (PreferenceInfoElement)vcPrefInfos.elementAt(idx);
prefInfo.setSessionTimerValue(sessionTimerValue);
vcPrefInfos.setElementAt(prefInfo, idx);
}
public String getCardRWAddr() {
return getCardRWAddr(curIdx);
}
private String getCardRWAddr(int idx) {
if (idx < 0 || idx >= vcPrefInfos.size()) {
return DEF_CARD_RW_ADDR;
}
return ((PreferenceInfoElement)vcPrefInfos.elementAt(idx)).getCardRWAddr();
}
public void setCardRWAddr(String cardRWAddr) {
setCardRWAddr(curIdx, cardRWAddr);
}
private void setCardRWAddr(int idx, String cardRWAddr) {
if (idx < 0 || idx >= vcPrefInfos.size()) {
return;
}
PreferenceInfoElement prefInfo = (PreferenceInfoElement)vcPrefInfos.elementAt(idx);
prefInfo.setCardRWAddr(cardRWAddr);
vcPrefInfos.setElementAt(prefInfo, idx);
}
public int getFelicaSysCode() {
return getFelicaSysCode(curIdx);
}
private int getFelicaSysCode(int idx) {
if (idx < 0 || idx >= vcPrefInfos.size()) {
return DEF_FELICA_SYS_CODE;
}
return ((PreferenceInfoElement)vcPrefInfos.elementAt(idx)).getFelicaSysCode();
}
public void setFelicaSysCode(int felicaSysCode) {
setFelicaSysCode(curIdx, felicaSysCode);
}
private void setFelicaSysCode(int idx, int felicaSysCode) {
if (idx < 0 || idx >= vcPrefInfos.size()) {
return;
}
PreferenceInfoElement prefInfo = (PreferenceInfoElement)vcPrefInfos.elementAt(idx);
prefInfo.setFelicaSysCode(felicaSysCode);
vcPrefInfos.setElementAt(prefInfo, idx);
}
public String getHost() {
return getHost(curIdx);
}
private String getHost(int idx) {
if (idx < 0 || idx >= vcPrefInfos.size()) {
return DEF_HOST;
}
return ((PreferenceInfoElement)vcPrefInfos.elementAt(idx)).getHost();
}
public void setHost(String host) {
setHost(curIdx, host);
}
private void setHost(int idx, String host) {
if (idx < 0 || idx >= vcPrefInfos.size()) {
return;
}
PreferenceInfoElement prefInfo = (PreferenceInfoElement)vcPrefInfos.elementAt(idx);
prefInfo.setHost(host);
vcPrefInfos.setElementAt(prefInfo, idx);
}
public int getPort() {
return getPort(curIdx);
}
private int getPort(int idx) {
if (idx < 0 || idx >= vcPrefInfos.size()) {
return DEF_PORT;
}
return ((PreferenceInfoElement)vcPrefInfos.elementAt(idx)).getPort();
}
public void setPort(int port) {
setPort(curIdx, port);
}
private void setPort(int idx, int port) {
if (idx < 0 || idx >= vcPrefInfos.size()) {
return;
}
PreferenceInfoElement prefInfo = (PreferenceInfoElement)vcPrefInfos.elementAt(idx);
prefInfo.setPort(port);
vcPrefInfos.setElementAt(prefInfo, idx);
}
public boolean isUseHttps() {
return isUseHttps(curIdx);
}
private boolean isUseHttps(int idx) {
if (idx < 0 || idx >= vcPrefInfos.size()) {
return DEF_USE_HTTPS;
}
return ((PreferenceInfoElement)vcPrefInfos.elementAt(idx)).isUseHttps();
}
public void setUseHttps(boolean useHttps) {
setUseHttps(curIdx, useHttps);
}
private void setUseHttps(int idx, boolean useHttps) {
if (idx < 0 || idx >= vcPrefInfos.size()) {
return;
}
PreferenceInfoElement prefInfo = (PreferenceInfoElement)vcPrefInfos.elementAt(idx);
prefInfo.setUseHttps(useHttps);
vcPrefInfos.setElementAt(prefInfo, idx);
}
public String getPath() {
return getPath(curIdx);
}
private String getPath(int idx) {
if (idx < 0 || idx >= vcPrefInfos.size()) {
return DEF_PATH;
}
return ((PreferenceInfoElement)vcPrefInfos.elementAt(idx)).getPath();
}
public void setPath(String path) {
setPath(curIdx, path);
}
private void setPath(int idx, String path) {
if (idx < 0 || idx >= vcPrefInfos.size()) {
return;
}
PreferenceInfoElement prefInfo = (PreferenceInfoElement)vcPrefInfos.elementAt(idx);
prefInfo.setPath(path);
vcPrefInfos.setElementAt(prefInfo, idx);
}
public String getDocBase() {
return getDocBase(curIdx);
}
private String getDocBase(int idx) {
return (isUseHttps(idx) ? HTTPS_STR : HTTP_STR) + getHost(idx) + ":" + Integer.toString(getPort(idx)) + getPath(idx) + SERVLET_DIR_STR;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -