} else {  String return_msg = validateRange(value); return return_msg;
	public String validate(String value) {		if (value == null) {			return MetaTypeMsg.NULL_IS_INVALID;		}		if ((_minValue == null) && (_maxValue == null)) {			if (_dataType != STRING) {				// No validation present				return null;			} else {				if (_values.size() < 1)					// No validation present					return null;			}		}		// Addtional validation for STRING.		if (_dataType == STRING && _values.size() > 0 && !_values.contains(value)) {			return NLS.bind(MetaTypeMsg.VALUE_OUT_OF_OPTION, value);		}		try {			if (_cardinality != 0) {				ValueTokenizer vt = new ValueTokenizer(value);				Vector value_vector = vt.getValuesAsVector();				if (value_vector.size() > Math.abs(_cardinality)) {					return NLS.bind(MetaTypeMsg.TOO_MANY_VALUES, value, new Integer(Math.abs(_cardinality)));				}				for (int i = 0; i < value_vector.size(); i++) {					String return_msg = validateRange((String) value_vector.get(i));					if (!"".equals(return_msg)) { //$NON-NLS-1$						// Returned String states why the value is invalid.						return return_msg;					}				}				// No problems detected				return ""; //$NON-NLS-1$			} else {				// Only when cardinality is '0', it comes here.				String return_msg = validateRange(value);				return return_msg;			}		} catch (Throwable t) {			return NLS.bind(MetaTypeMsg.EXCEPTION_MESSAGE, t.getClass().getName(), t.getMessage());		}	}