package com.knowgate.surveys;
import com.knowgate.misc.Gadgets;
import com.knowgate.debug.DebugFile;
/**
* @author Sergio Montoro Ten
* @version 1.0
*/
public class TextElement {
protected String name;
protected String value;
protected String caption;
protected int maxlen;
protected boolean ascii7caps;
protected boolean numerical;
// ---------------------------------------------------------------------------
public TextElement() {
caption = name = value = null;
maxlen = 80;
ascii7caps = false;
}
// ---------------------------------------------------------------------------
public boolean forceASCII7Caps() {
return ascii7caps;
}
// ---------------------------------------------------------------------------
public void forceASCII7Caps(boolean bForce) {
ascii7caps = bForce;
}
// ---------------------------------------------------------------------------
/**
* <p>Set element value</p>
* If forceASCII7Caps() is <b>true</b> the function Gadgets.ASCIIEncode() is
* applied to input argument before setting value.
* @param sValue String
* @throws IllegalArgumentException If sValue.length()>getMaxLength()
*/
public void setValue(String sNewVal) throws IllegalArgumentException {
if (DebugFile.trace) {
if (sNewVal!=null) {
if (sNewVal.length()>maxlen)
throw new IllegalArgumentException("Value exceeds maximum length of "+String.valueOf(maxlen) + " characters");
}
}
if (null==sNewVal)
value = "";
else if (ascii7caps)
value = Gadgets.ASCIIEncode(sNewVal).toUpperCase();
else
value = sNewVal;
} // setValue
// ---------------------------------------------------------------------------
/**
* <p>Get element value</p>
* If forceASCII7Caps() is <b>true</b> the function Gadgets.ASCIIEncode() is
* applied to return value.
* @return String
*/
public String getValue() {
if (null==value)
return "";
else if (ascii7caps)
return Gadgets.ASCIIEncode(value).toUpperCase();
else
return value;
}
// ---------------------------------------------------------------------------
/**
* <p>Get Element name</p>
* @return String
*/
public String getName() { return name; }
// ---------------------------------------------------------------------------
/**
* <p>Set Element name</p>
* Only letters and numbers allowed. No spaces nor delimiter characters.
* @param sName String
* @throws IllegalArgumentException
*/
public void setName(String sName)
throws IllegalArgumentException {
if (DebugFile.trace) {
if (sName.indexOf(' ')>=0 || sName.indexOf(',')>=0 || sName.indexOf(';')>=0 ||
sName.indexOf('|')>=0 || sName.indexOf('&')>=0 || sName.indexOf('?')>=0 ||
sName.indexOf('*')>=0 || sName.indexOf('/')>=0 || sName.indexOf('\\')>=0 ||
sName.indexOf('-')>=0 || sName.indexOf('(')>=0 || sName.indexOf(')')>=0 ||
sName.indexOf('+')>=0 || sName.indexOf('[')>=0 || sName.indexOf(']')>=0 ||
sName.indexOf('%')>=0 || sName.indexOf('{')>=0 || sName.indexOf('}')>=0 ||
sName.indexOf('ñ')>=0 || sName.indexOf('Ñ')>=0 || sName.indexOf('^')>=0 ||
sName.indexOf('ç')>=0 || sName.indexOf('Ç')>=0 || sName.indexOf('"')>=0 ||
sName.indexOf('á')>=0 || sName.indexOf('é')>=0 || sName.indexOf('í')>=0 ||
sName.indexOf('ó')>=0 || sName.indexOf('ú')>=0 || sName.indexOf('à')>=0 ||
sName.indexOf('è')>=0 || sName.indexOf('è')>=0 || sName.indexOf('ò')>=0 ||
sName.indexOf('ù')>=0 || sName.indexOf('`')>=0 || sName.indexOf('´')>=0 ||
sName.indexOf('.')>=0 || sName.indexOf(':')>=0 || sName.indexOf(',')>=0 ||
sName.indexOf(39 )>=0 || sName.indexOf('¡')>=0 || sName.indexOf('¿')>=0) {
}
throw new IllegalArgumentException("Element name contains invalid characters");
} else {
name = sName;
}
}
// ---------------------------------------------------------------------------
/**
* Get element caption
* @return String
*/
public String getCaption() { return caption; }
/**
* Set element caption
* @return String
*/
public void setCaption(String sCaption) { caption = sCaption; }
// ---------------------------------------------------------------------------
/**
* Get element value maximum character length
* @return int
*/
public int getMaxLength() { return maxlen; }
// ---------------------------------------------------------------------------
/**
* Set element value maximum character length
* @param iMaxLength Maximum lenght for value in characters
*/
public void setMaxLength(int iMaxLen) { maxlen=iMaxLen; }
// ---------------------------------------------------------------------------
}