1 /*
2 * The Kuali Financial System, a comprehensive financial management system for higher education.
3 *
4 * Copyright 2005-2014 The Kuali Foundation
5 *
6 * This program is free software: you can redistribute it and/or modify
7 * it under the terms of the GNU Affero General Public License as
8 * published by the Free Software Foundation, either version 3 of the
9 * License, or (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU Affero General Public License for more details.
15 *
16 * You should have received a copy of the GNU Affero General Public License
17 * along with this program. If not, see <http://www.gnu.org/licenses/>.
18 */
19 package org.kuali.rice.core.util.jaxb;
20
21 import java.util.Date;
22
23 import javax.xml.bind.annotation.adapters.XmlAdapter;
24
25 import org.apache.commons.lang.StringUtils;
26 import org.kuali.rice.core.api.CoreApiServiceLocator;
27
28 /**
29 * An XML Adapter that relies on the DateTimeService to marshal and unmarshal datetime values in String form.
30 * Converts Strings to java.util.Date instances and vice versa.
31 *
32 * @author Kuali Rice Team (rice.collab@kuali.org)
33 */
34 public class StringToDateTimeAdapter extends XmlAdapter<String,Date> {
35
36 /**
37 * @see javax.xml.bind.annotation.adapters.XmlAdapter#unmarshal(java.lang.Object)
38 */
39 @Override
40 public Date unmarshal(String v) throws Exception {
41 return (v != null) ? CoreApiServiceLocator.getDateTimeService().convertToDateTime(StringUtils.trim(v)) : null;
42 }
43
44 /**
45 * @see javax.xml.bind.annotation.adapters.XmlAdapter#marshal(java.lang.Object)
46 */
47 @Override
48 public String marshal(Date v) throws Exception {
49 return (v != null) ? CoreApiServiceLocator.getDateTimeService().toDateTimeString(v) : null;
50 }
51
52 }