⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 csettings.java

📁 SMSLib一个很有用的程序
💻 JAVA
字号:
// SMSLib for Java
// An open-source API Library for sending and receiving SMS via a GSM modem.
// Copyright (C) 2002-2006, Thanasis Delenikas, Athens/GREECE
// Web Site: http://www.smslib.org
//
// SMSLib is distributed under the LGPL license.
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Lesser General Public
// License as published by the Free Software Foundation; either
// version 2.1 of the License, or (at your option) any later version.
// 
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Lesser General Public License for more details.
// 
// You should have received a copy of the GNU Lesser General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA

//
// SMSServer for Java GUI Application.
// Please read _README.txt for further information.
//

package smsserver;

import java.io.*;
import java.util.*;

import org.smslib.*;

class CSettings
{
	private static final String CONFIG_FILE = "SMSServer.conf";

	private CMainWindow mainWindow;

	private CGeneralSettings generalSettings;

	private CPhoneSettings phoneSettings;

	private CDatabaseSettings databaseSettings;

	private CSerialDriverSettings serialDriverSettings;

	public CSettings()
	{
		generalSettings = new CGeneralSettings();
		phoneSettings = new CPhoneSettings();
		databaseSettings = new CDatabaseSettings();
		serialDriverSettings = new CSerialDriverSettings();
	}

	public void setMainWindow(CMainWindow mainWindow)
	{
		this.mainWindow = mainWindow;
	}

	public void loadConfiguration() throws Exception
	{
		String configFile;

		if (System.getProperty("smsserver.configdir") != null) configFile = System.getProperty("smsserver.configdir") + CONFIG_FILE;
		else configFile = "./" + CONFIG_FILE;
		loadConfiguration(configFile);
	}

	public void loadConfiguration(String configFile) throws Exception
	{
		Properties props = new Properties();

		props.load(new FileInputStream(configFile));
		generalSettings.setGui(props.getProperty("general.gui", "yes").equalsIgnoreCase("yes"));
		generalSettings.setRawInLog(props.getProperty("general.raw_in_log", null));
		generalSettings.setRawOutLog(props.getProperty("general.raw_out_log", null));
		phoneSettings.setManufacturer(props.getProperty("phone.manufacturer", "generic"));
		phoneSettings.setModel(props.getProperty("phone.model", "generic"));
		phoneSettings.setPeriodInterval(Integer.parseInt(props.getProperty("phone.interval", "15")));
		phoneSettings.setDeleteAfterProcessing(props.getProperty("phone.delete_after_processing", "no").equalsIgnoreCase("yes"));
		phoneSettings.setXmlInQueue(props.getProperty("phone.xml_in_queue", null));
		phoneSettings.setXmlOutQueue(props.getProperty("phone.xml_out_queue", null));
		phoneSettings.setBatchIncoming(Integer.parseInt(props.getProperty("phone.batch_incoming", "-1")));
		phoneSettings.setBatchOutgoing(Integer.parseInt(props.getProperty("phone.batch_outgoing", "-1")));
		phoneSettings.setSmscNumber(props.getProperty("phone.smsc_number", null));
		phoneSettings.setMessageEncoding(props.getProperty("phone.message_encoding", "7bit"));
		phoneSettings.setSimPin(props.getProperty("phone.sim_pin", null));
		phoneSettings.setForwardNumber(props.getProperty("props.forward_number", null));

		databaseSettings.setEnabled(props.getProperty("database.enabled", "no").equalsIgnoreCase("yes"));
		if (databaseSettings.getEnabled())
		{
			if (props.getProperty("database.type", "").equalsIgnoreCase("sql92")) databaseSettings.setType(CDatabaseSettings.DB_TYPE_SQL92);
			else if (props.getProperty("database.type", "").equalsIgnoreCase("mysql")) databaseSettings.setType(CDatabaseSettings.DB_TYPE_MYSQL);
			else if (props.getProperty("database.type", "").equalsIgnoreCase("mssql")) databaseSettings.setType(CDatabaseSettings.DB_TYPE_MSSQL);
			else databaseSettings.setType(CDatabaseSettings.DB_TYPE_SQL92);
			databaseSettings.setUrl(props.getProperty("database.url", "url"));
			databaseSettings.setDriver(props.getProperty("database.driver", "driver"));
			databaseSettings.setUsername(props.getProperty("database.username", "username"));
			databaseSettings.setPassword(props.getProperty("database.password", "password"));
		}

		serialDriverSettings.setPort(props.getProperty("serial.port", "com1"));
		serialDriverSettings.setBaud(Integer.parseInt(props.getProperty("serial.baud", "19200")));
	}

	public CGeneralSettings getGeneralSettings()
	{
		return generalSettings;
	}

	public CPhoneSettings getPhoneSettings()
	{
		return phoneSettings;
	}

	public CDatabaseSettings getDatabaseSettings()
	{
		return databaseSettings;
	}

	public CSerialDriverSettings getSerialDriverSettings()
	{
		return serialDriverSettings;
	}

	static class CGeneralSettings
	{
		private boolean guiEnabled = true;

		private RandomAccessFile rawInLog = null, rawOutLog = null;

		public CGeneralSettings()
		{
		}

		public void setGui(boolean guiOn)
		{
			this.guiEnabled = guiOn;
		}

		public void setRawInLog(String filename)
		{
			if (filename != null)
			{
				try
				{
					rawInLog = new RandomAccessFile(filename, "rw");
					rawInLog.seek(rawInLog.length());
				}
				catch (Exception e)
				{
					rawInLog = null;
				}
			}
			else rawInLog = null;
		}

		public void setRawOutLog(String filename)
		{
			if (filename != null)
			{
				try
				{
					rawOutLog = new RandomAccessFile(filename, "rw");
					rawOutLog.seek(rawOutLog.length());
				}
				catch (Exception e)
				{
					rawOutLog = null;
				}
			}
			else rawOutLog = null;
		}

		public boolean getGui()
		{
			return guiEnabled;
		}

		public boolean isRawInLogEnabled()
		{
			return (rawInLog != null);
		}

		public boolean isRawOutLogEnabled()
		{
			return (rawOutLog != null);
		}

		public void rawInLog(CIncomingMessage message)
		{
			if (rawInLog != null)
			{
				try
				{
					rawInLog.writeBytes(message.getOriginator());
					rawInLog.writeBytes("\t");
					rawInLog.writeBytes(date2LogString(message.getDate()));
					rawInLog.writeBytes("\t");
					rawInLog.writeBytes(message.getText());
					rawInLog.writeBytes("\n");
				}
				catch (Exception e)
				{
					e.printStackTrace();
				}
			}
		}

		public void rawOutLog(COutgoingMessage message)
		{
			if (rawOutLog != null)
			{
				try
				{
					rawOutLog.writeBytes(message.getRecipient());
					rawOutLog.writeBytes("\t");
					rawOutLog.writeBytes(date2LogString(message.getDispatchDate()));
					rawOutLog.writeBytes("\t");
					rawOutLog.writeBytes(message.getText());
					rawOutLog.writeBytes("\n");
				}
				catch (Exception e)
				{
					e.printStackTrace();
				}
			}
		}

		private String date2LogString(java.util.Date date)
		{
			String line = "";
			Calendar cal = Calendar.getInstance();

			if (date == null) return "* N/A *";
			cal.setTime(date);
			line = line + cal.get(Calendar.YEAR);
			line = line + (((cal.get(Calendar.MONTH) + 1) <= 9) ? "0" + (cal.get(Calendar.MONTH) + 1) : "" + (cal.get(Calendar.MONTH) + 1));
			line = line + ((cal.get(Calendar.DAY_OF_MONTH) <= 9) ? "0" + cal.get(Calendar.DAY_OF_MONTH) : "" + cal.get(Calendar.DAY_OF_MONTH));
			line = line + ((cal.get(Calendar.HOUR_OF_DAY) <= 9) ? "0" + cal.get(Calendar.HOUR_OF_DAY) : "" + cal.get(Calendar.HOUR_OF_DAY));
			line = line + ((cal.get(Calendar.MINUTE) <= 9) ? "0" + cal.get(Calendar.MINUTE) : "" + cal.get(Calendar.MINUTE));
			line = line + ((cal.get(Calendar.SECOND) <= 9) ? "0" + cal.get(Calendar.SECOND) : "" + cal.get(Calendar.SECOND));
			return line;
		}
	}

	static class CPhoneSettings
	{
		private String manufacturer;

		private String model;

		private int periodInterval;

		private boolean deleteAfterProcessing;

		private String xmlInQueue;

		private String xmlOutQueue;

		private int batchIncoming;

		private int batchOutgoing;

		private String smscNumber;

		private String messageEncoding;

		private String simPin;

		private String forwardNumber;

		public CPhoneSettings()
		{
		}

		public void setManufacturer(String manufacturer)
		{
			this.manufacturer = manufacturer;
		}

		public void setModel(String model)
		{
			this.model = model;
		}

		public void setPeriodInterval(int interval)
		{
			periodInterval = interval;
		}

		public void setDeleteAfterProcessing(boolean deleteAfterProcessing)
		{
			this.deleteAfterProcessing = deleteAfterProcessing;
		}

		public void setXmlInQueue(String xmlInQueue)
		{
			this.xmlInQueue = xmlInQueue;
			if ((this.xmlInQueue != null) && (this.xmlInQueue.length() == 0)) this.xmlInQueue = null;
		}

		public void setXmlOutQueue(String xmlOutQueue)
		{
			this.xmlOutQueue = xmlOutQueue;
			if ((this.xmlOutQueue != null) && (this.xmlOutQueue.length() == 0)) this.xmlOutQueue = null;
		}

		public void setBatchIncoming(int batchIncoming)
		{
			this.batchIncoming = batchIncoming;
		}

		public void setBatchOutgoing(int batchOutgoing)
		{
			this.batchOutgoing = batchOutgoing;
		}

		public void setSmscNumber(String number)
		{
			this.smscNumber = number;
		}

		public void setMessageEncoding(String messageEncoding)
		{
			this.messageEncoding = messageEncoding;
		}

		public void setSimPin(String simPin)
		{
			this.simPin = simPin;
		}

		public void setForwardNumber(String forwardNumber)
		{
			this.forwardNumber = forwardNumber;
		}

		public String getManufacturer()
		{
			return manufacturer;
		}

		public String getModel()
		{
			return model;
		}

		public int getPeriodInterval()
		{
			return periodInterval * 1000;
		}

		public boolean getDeleteAfterProcessing()
		{
			return deleteAfterProcessing;
		}

		public String getXmlInQueue()
		{
			return xmlInQueue;
		}

		public String getXmlOutQueue()
		{
			return xmlOutQueue;
		}

		public int getBatchIncoming()
		{
			return (batchIncoming == -1 ? 32 : batchIncoming);
		}

		public int getBatchOutgoing()
		{
			return (batchOutgoing == -1 ? 32 : batchOutgoing);
		}

		public String getSmscNumber()
		{
			return smscNumber;
		}

		public String getMessageEncoding()
		{
			return messageEncoding;
		}

		public String getSimPin()
		{
			return simPin;
		}

		public String getForwardNumber()
		{
			return forwardNumber;
		}
	}

	static class CDatabaseSettings
	{
		public static final int DB_TYPE_SQL92 = 1;

		public static final int DB_TYPE_MYSQL = 2;

		public static final int DB_TYPE_MSSQL = 3;

		private boolean enabled;

		private int type;

		private String url;

		private String driver;

		private String username;

		private String password;

		public CDatabaseSettings()
		{
			enabled = false;
		}

		public void setEnabled(boolean enabled)
		{
			this.enabled = enabled;
		}

		public void setType(int type)
		{
			this.type = type;
		}

		public void setUrl(String url)
		{
			this.url = url;
		}

		public void setDriver(String driver)
		{
			this.driver = driver;
		}

		public void setUsername(String username)
		{
			this.username = username;
		}

		public void setPassword(String password)
		{
			this.password = password;
		}

		public boolean getEnabled()
		{
			return enabled;
		}

		public int getType()
		{
			return type;
		}

		public String getUrl()
		{
			return url;
		}

		public String getDriver()
		{
			return driver;
		}

		public String getUsername()
		{
			return username;
		}

		public String getPassword()
		{
			return password;
		}
	}

	static class CSerialDriverSettings
	{
		private String port;

		private int baud;

		public void setPort(String port)
		{
			this.port = port;
		}

		public void setBaud(int baud)
		{
			this.baud = baud;
		}

		public String getPort()
		{
			return port;
		}

		public int getBaud()
		{
			return baud;
		}
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -