/*
* Aipo is a groupware program developed by TOWN, Inc.
* Copyright (C) 2004-2015 TOWN, Inc.
* http://www.aipo.com
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* 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 Affero 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/>.
*/
package com.aimluck.commons.field;
import java.util.ArrayList;
import java.util.List;
import com.aimluck.eip.util.ALLocalizationUtils;
/**
* 携帯電話用の入力フィールドを表すクラス(年月日用)です。 <br />
*
*/
public class ALCellDateField extends ALDateField {
/**
*
*/
private static final long serialVersionUID = -8240954278261905509L;
/**
* コンストラクタ
*
*/
public ALCellDateField() {
super();
}
/**
* コンストラクタ
*
* @param container
*/
public ALCellDateField(ALDateContainer container) {
super(container);
}
/**
* 入力フィールド値を検証します。
*
* @param msgList
* @return
*/
@Override
public boolean validate(List<String> msgList) {
if (msgList == null) {
msgList = new ArrayList<String>();
}
if (!isNotNullValue()) {
if (isNotNull()) {
msgList.add(ALLocalizationUtils.getl10nFormat(
"COMMONS_FIELD_INPUT_NAME",
fieldName));
return false;
}
} else {
try {
value.getDate();
// 1582年以前の年の指定を弾く
// (理由:Javaでは1582年より前の年にユリウス暦を採用しているのに対して、
// PostgreSQLは暦として常にグレゴリオ暦が採用されているため)
int year = value.getYear();
if (year <= 1582) {
msgList.add(ALLocalizationUtils.getl10nFormat(
"COMMONS_FIELD_ERROR_DATE",
fieldName));
return false;
}
} catch (NumberFormatException ex) {
msgList.add(ALLocalizationUtils.getl10nFormat(
"COMMONS_FIELD_INPUT_ERROR",
fieldName));
return false;
} catch (ALIllegalDateException ex) {
msgList.add(ALLocalizationUtils.getl10nFormat(
"COMMONS_FIELD_INPUT_ERROR",
fieldName));
return false;
}
}
return true;
}
}