com.khubla.cbean.serializer.impl.json.JSONDateFieldSerializer.java Source code

Java tutorial

Introduction

Here is the source code for com.khubla.cbean.serializer.impl.json.JSONDateFieldSerializer.java

Source

/*
 * cBean Copyright 2016, Tom Everett <tom@khubla.com>
 *
 *   This program is free software: you can redistribute it and/or modify
 *   it under the terms of the GNU 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 General Public License for more details.
 *
 *    You should have received a copy of the GNU General Public License
 *    along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
package com.khubla.cbean.serializer.impl.json;

import java.lang.reflect.Field;
import java.util.Date;

import org.apache.commons.beanutils.PropertyUtils;

import com.khubla.cbean.serializer.FieldSerializer;
import com.khubla.cbean.serializer.SerializerException;

public class JSONDateFieldSerializer implements FieldSerializer {
    public JSONDateFieldSerializer() {
    }

    @Override
    public boolean applies(Field field) {
        final Class<?> type = field.getType();
        return type == Date.class;
    }

    @Override
    public void delete(Object o, Field field) throws SerializerException {
        // nothing to do
    }

    @Override
    public void deserialize(Object o, Field field, String value) throws SerializerException {
        try {
            final Long l = Long.parseLong(value);
            final Date date = new Date(l);
            PropertyUtils.setProperty(o, field.getName(), date);
        } catch (final Exception e) {
            throw new SerializerException(e);
        }
    }

    @Override
    public String serialize(Object o, Field field) throws SerializerException {
        try {
            final Date date = (Date) PropertyUtils.getProperty(o, field.getName());
            return Long.toString(date.getTime());
        } catch (final Exception e) {
            throw new SerializerException(e);
        }
    }
}