/*
* Funambol is a mobile platform developed by Funambol, Inc.
* Copyright (C) 2003 - 2007 Funambol, Inc.
*
* This program is free software; you can redistribute it and/or modify it under
* the terms of the GNU Affero General Public License version 3 as published by
* the Free Software Foundation with the addition of the following permission
* added to Section 15 as permitted in Section 7(a): FOR ANY PART OF THE COVERED
* WORK IN WHICH THE COPYRIGHT IS OWNED BY FUNAMBOL, FUNAMBOL DISCLAIMS THE
* WARRANTY OF NON INFRINGEMENT OF THIRD PARTY RIGHTS.
*
* This program 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 General Public License for more
* details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program; if not, see http://www.gnu.org/licenses or write to
* the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
* MA 02110-1301 USA.
*
* You can contact Funambol, Inc. headquarters at 643 Bair Island Road, Suite
* 305, Redwood City, CA 94063, USA, or at email address info@funambol.com.
*
* The interactive user interfaces in modified source and object code versions
* of this program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU Affero General Public License version 3.
*
* In accordance with Section 7(b) of the GNU Affero General Public License
* version 3, these Appropriate Legal Notices must retain the display of the
* "Powered by Funambol" logo. If the display of the logo is not reasonably
* feasible for technical reasons, the Appropriate Legal Notices must display
* the words "Powered by Funambol".
*/
package com.funambol.syncml.spds;
import com.funambol.sync.DeviceConfigI;
/**
* This class groups all configuration properties related to the device.
* Most of DeviceConfig properties are used to generate the
* <pre><DevInf></pre> element for client capabilities.
* DeviceConfig is a part of SyncConfig.
*
*/
public class DeviceConfig implements DeviceConfigI {
//--------------------------------------------------------------- Constants
private static final int MAXMSGSIZE = 16*1024;
//-------------------------------------------------------------- Attributes
/**
* Specifies the major and minor version identifier of the Device
* Information DTD used in the representation of the Device Information.
* This property is mandatory.
*/
private String verDTD;
/**
* Specifies the name of the manufacturer of the device. Mandatory
*/
private String man;
/**
* Specifies the model name or model number of the device. Mandatory
*/
private String mod;
/**
* Specifies the OEM (Original Equipment Manufacturer) of the device.
* This property is optional.
*/
private String oem;
/**
* Specifies the firmware version of the device. Mandatory
*/
private String fwv;
/**
* Specifies the software version of the device. Mandatory
*/
private String swv;
/**
* Specifies the hardware version of the device. This property is optional.
*/
private String hwv;
/**
* Specifies the identifier of the source synchronization device.
* The content information MUST specify a theoretically, globally unique
* identifier. This property is mandatory.
*/
private String devID;
/**
* Specifies the type of the source synchronization device.
* Type values for this element type can be e.g. "pager", "handheld",
* "pda", "phone", "smartphone", "server", "workstation".
* Other values can also be specified. This property is mandatory.
*/
private String devType;
/**
* Specifies the implemented DS version. This property is optional.
*/
private String dsV;
/**
* Specifies that the device supports UTC based time.
* If utc = TRUE, the server SHOULD send time in UTC format, else MUST
* send in local time. Default value = TRUE.
*/
private boolean utc;
/**
* Specifies that the device supports handling of large objects.
* Default value = FALSE.
*/
private boolean loSupport;
/**
* Specifies that the device supports number of changes.
* Default value = FALSE.
*/
private boolean nocSupport;
/**
* Specifies the maximum message size allowed by the device.
*/
private int maxMsgSize;
/**
* Specifies the maximum object size allowed by the device.
* Default value = 0 (no maxObjSize set).
*/
private int maxObjSize;
/**
* Specifies if the synchronization shall be in XML or WBXML
*/
private boolean wbxml = false;
//------------------------------------------------------------ Constructors
/**
* Default constructor. All the mandatory informations are set to
* a default value, or to the values actually supported by the current
* SyncML implementation. The optional fields are set to null.
*
* TODO: get the values from the device configuration (e.g. IMEI)
*/
public DeviceConfig() {
verDTD = "1.2";
man = null;
mod = null;
oem = null;
fwv = null;
swv = null;
hwv = null;
devID = "fsc-j2me-api";
devType = "phone";
dsV = "1.2";
utc = true; // TODO: check this.
loSupport = true;
nocSupport = false;
maxMsgSize = MAXMSGSIZE;
maxObjSize = MAXMSGSIZE;
wbxml = false;
}
public int getMaxMsgSize() {
return maxMsgSize;
}
public void setMaxMsgSize(int value) {
maxMsgSize = value;
}
public boolean isWBXML() {
return wbxml;
}
public void setWBXML(boolean wbxml) {
this.wbxml = wbxml;
}
public String getMan() {
return man;
}
public void setMan(String man) {
this.man = man;
}
public String getMod() {
return mod;
}
public void setMod(String mod) {
this.mod = mod;
}
public String getOEM() {
return oem;
}
public void setOEM(String oem) {
this.oem = oem;
}
public String getFwV() {
return fwv;
}
public void setFwV(String fwv) {
this.fwv = fwv;
}
public String getSwV() {
return swv;
}
public void setSwV(String swv) {
this.swv = swv;
}
public String getHwV() {
return hwv;
}
public void setHwV(String hwv) {
this.hwv = hwv;
}
public String getDevID() {
return devID;
}
public void setDevID(String devID) {
this.devID = devID;
}
public String getDevType() {
return devType;
}
public void setDevType(String devType) {
this.devType = devType;
}
public int getMaxObjSize() {
return maxObjSize;
}
public void setMaxObjSize(int maxObjSize) {
this.maxObjSize = maxObjSize;
}
public boolean getNocSupport() {
return nocSupport;
}
public void setNocSupport(boolean nocSupport) {
this.nocSupport = nocSupport;
}
public boolean getLoSupport() {
return loSupport;
}
public void setLoSupport(boolean loSupport) {
this.loSupport = loSupport;
}
public boolean getUtc() {
return utc;
}
public void setUtc(boolean utc) {
this.utc = utc;
}
public String getVerDTD() {
return verDTD;
}
public void setVerDTD(String verDTD) {
this.verDTD = verDTD;
}
}