com.wizecommerce.hecuba.JSONResultSet.java Source code

Java tutorial

Introduction

Here is the source code for com.wizecommerce.hecuba.JSONResultSet.java

Source

/*
 * Licensed 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.
 */

package com.wizecommerce.hecuba;

import org.json.simple.JSONObject;

import java.sql.Timestamp;
import java.util.Date;

public class JSONResultSet {

    final JSONObject decoder;

    private JSONResultSet() {

        decoder = null;
    }

    public JSONResultSet(JSONObject value) {

        this.decoder = value;
    }

    public String getString(String fieldName) {

        return getString(fieldName, "");
    }

    public String getString(String fieldName, String defaultValue) {
        String value = (String) decoder.get(fieldName);

        if ((value == null) || value.equals("")) {
            return defaultValue;
        }

        return value;
    }

    public Boolean getBoolean(String fieldName) {

        return getBoolean(fieldName, Boolean.FALSE);
    }

    public Boolean getBoolean(String fieldName, Boolean defaultValue) {

        Boolean value = (Boolean) decoder.get(fieldName);

        return (value == null) ? defaultValue : value;
    }

    public Integer getInteger(String fieldName) {

        return getInteger(fieldName, 0);
    }

    public Integer getInteger(String fieldName, Integer defaultInt) {

        Long value = (Long) decoder.get(fieldName);

        return (value == null) ? defaultInt : value.intValue();
    }

    public Long getLong(String fieldName) {

        return getLong(fieldName, 0L);
    }

    public Long getLong(String fieldName, Long defaultLong) {

        Long value = (Long) decoder.get(fieldName);

        return (value == null) ? defaultLong : value;

    }

    public Double getDouble(String fieldName) {

        return getDouble(fieldName, 0.0);
    }

    public Double getDouble(String fieldName, Double defaultDouble) {

        Double value = (Double) decoder.get(fieldName);

        return (value == null) ? defaultDouble : value;

    }

    public float getFloat(String fieldName) {
        return getFloat(fieldName, 0.0f);
    }

    public float getFloat(String fieldName, Float defaultValue) {

        Float value = (Float) decoder.get(fieldName);

        return (value == null) ? defaultValue : value;
    }

    // numeric values seem to come in as Longs, need to downcast
    public Byte getByte(String fieldName) {
        final Long value = (Long) decoder.get(fieldName);

        return (value == null) ? null : value.byteValue();
    }

    /**
     * you should be storing dates as longs
     * 
     * @param fieldName name of the field
     * 
     * @return the date associated with the fieldName 
     */
    @Deprecated
    public Date getDate(String fieldName) {

        return getDate(fieldName, null);
    }

    /**
     * NOTE: Using simple-json (our current implementation), date and time are considered complex objects. It is recommended to store the date in json as the epoch time ie.
     * .getTime(); which should be available for java.util.Date, java.sql.Date, and java.sql.Timestamp;
     * 
     * @param fieldName name of the field
     * @param defaultDate default date to return if no value assocated with the field
     * 
     * @return the associated with the fieldName or defaultDate if no value associated with the field
     * 
     **/
    @Deprecated
    public Date getDate(String fieldName, Date defaultDate) {

        Long epoch = (Long) decoder.get(fieldName);

        return (epoch == null) ? defaultDate : new Date(epoch);
    }

    @Deprecated
    public java.sql.Date getSQLDate(String fieldName) {

        return getSQLDate(fieldName, null);
    }

    @Deprecated
    public java.sql.Date getSQLDate(String fieldName, java.sql.Date defaultDate) {

        Long epoch = (Long) decoder.get(fieldName);

        return (epoch == null) ? defaultDate : new java.sql.Date(epoch);
    }

    @Deprecated
    public Timestamp getSQLTimeStamp(String fieldName) {

        return getSQLTimeStamp(fieldName, null);
    }

    @Deprecated
    public Timestamp getSQLTimeStamp(String fieldName, Timestamp defaultDate) {

        Long epoch = (Long) decoder.get(fieldName);

        return (epoch == null) ? defaultDate : new Timestamp(epoch);

    }

    public byte[] getByteArray(String fieldName) {

        byte[] value = (byte[]) decoder.get(fieldName);

        return value;
    }

}