blob: 6d707f3ca4db1af0ef6e15c67d8111470db1edae [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
function ssnGetAsString(value, label)
{
return value.substring(0,3) + '-' + value.substring(3,5) + '-' + value.substring(5);
}
function ssnGetAsObject(value, label)
{
if (!value)return null;
var len=value.length;
var messageKey = SSNConverter.NOT;
if (len < 9 )
messageKey = SSNConverter.SHORT;
else if (len > 11)
messageKey = SSNConverter.LONG;
else if (len == 9)
{ if (!isNaN(value))
return value;
}
else if (len == 11 && value.charAt(3) == '-' &&
value.charAt(6) == '-')
{
var result = value.substring(0,3) + value.substring(4,6) +
value.substring(7);
if (!isNaN(result))
return result;
}
if (messageKey!=null && this._messages!=null)
{
// format the detail error string
var detail = this._messages[messageKey];
if (detail != null)
{
detail = TrFastMessageFormatUtils.format(detail, label, value);
}
var facesMessage = new TrFacesMessage(
this._messages[SSNConverter.SUMMARY],
detail,
TrFacesMessage.SEVERITY_ERROR)
throw new TrConverterException(facesMessage);
}
return null;
}
function SSNConverter(messages)
{this._messages = messages;}
SSNConverter.prototype = new TrConverter();
SSNConverter.prototype.getAsString = ssnGetAsString;
SSNConverter.prototype.getAsObject = ssnGetAsObject;
SSNConverter.SUMMARY = 'SUM';
SSNConverter.SHORT = 'S';
SSNConverter.LONG = 'L';
SSNConverter.NOT = 'N';