001 /**
002 * Copyright 2010 The Kuali Foundation Licensed under the
003 * Educational Community License, Version 2.0 (the "License"); you may
004 * not use this file except in compliance with the License. You may
005 * obtain a copy of the License at
006 *
007 * http://www.osedu.org/licenses/ECL-2.0
008 *
009 * Unless required by applicable law or agreed to in writing,
010 * software distributed under the License is distributed on an "AS IS"
011 * BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
012 * or implied. See the License for the specific language governing
013 * permissions and limitations under the License.
014 */
015
016 package org.kuali.student.r1.common.validator;
017
018 import org.kuali.student.r2.common.util.date.DateFormatters;
019 import org.kuali.student.r2.common.util.date.KSDateTimeFormatter;
020
021 import java.util.Date;
022
023 @Deprecated
024 public class ServerDateParser implements DateParser {
025
026 private static ThreadLocal<KSDateTimeFormatter[]> formats = new ThreadLocal<KSDateTimeFormatter[]>() {
027
028 protected KSDateTimeFormatter[] initialValue() {
029 return new KSDateTimeFormatter[] {
030 new KSDateTimeFormatter("yyyy-MM-dd'T'HH:mm:ss.SSSZ"),
031 new KSDateTimeFormatter("yyyy-MM-dd"),
032 new KSDateTimeFormatter("yyyy-MMM-dd"),
033 new KSDateTimeFormatter("dd-MM-yyyy"),
034 new KSDateTimeFormatter("dd-MMM-yyyy")
035 };
036 }
037
038 };
039
040
041 public Date parseDate(String input) {
042 Date result = null;
043
044 for (KSDateTimeFormatter format : formats.get()) {
045 try {
046 result = format.parse(input);
047 } catch (Exception e) {
048 // just eat it
049 }
050 if (result != null) {
051 break;
052 }
053
054 }
055
056 if (result == null) {
057 throw new DateParseException("Invalid date value: " + input);
058 }
059
060 return result;
061 }
062
063 /**
064 * @see org.kuali.student.r1.common.validator.old.DateParser#toString(java.util.Date)
065 */
066 @Override
067 public String toString(Date date) {
068 String result = null;
069 result = DateFormatters.SERVER_DATE_PARSER_FORMATTER.format(date);
070
071 return result;
072 }
073 }